문제

i'm newbie in php foreach. Here's my code:

$name= array("1", "2", "3");
$say= array("one", "two", "three");
foreach ($name as $v) {
$nm= $v;
$show = array();
    foreach($say as $value) 
    $show[] = $nm.'='.$value;
    $show = implode("<br>",$show);
}

How can i display something like this

1=one
2=two
3=three
도움이 되었습니까?

해결책

Make use of a for loop instead.

$name= array("1", "2", "3");
$say= array("one", "two", "three");

for($i=0;$i<count($name);$i++)
{
echo "$name[$i]=$say[$i]<br>";
}

Demo

다른 팁

Here is the perfect answer.

$name= array("1", "2", "3");
$say= array("one", "two", "three");
$string = "";
for($row=0;$row<count($name);$row++)
{    
   if (array_key_exists($row, $say)) {
      $string .= "$name[$row]=$say[$row]<br>";
   }
}
echo $string;

Above solution may throw error if you add more value in $name array. Try this

Just use key

foreach ($name as $k=>$v) {
    echo $v . '=' . $say[$k] . '<br />';
}
$name= array("1", "2", "3");
$say= array("one", "two", "three");
$new = array_combine($name,$say);
foreach($new as $key=>$val) {
    echo $key.'='.$val."<br/>";
}
$name= array("1", "2", "3");
$say= array("one", "two", "three");
$result = array_combine($name, $say);
foreach ($result as $k => $v)
    echo $k . '=' . $v;

Use a for loop instead of a foreach loop. I assume the number of items on each array above will be equal

$name= array("1", "2", "3");
$say= array("one", "two", "three");
for($i=0;$i<count($name);$i++)
{
      echo "$name[$i]=$say[$i]<br>";
}

Can you try this, Using array_combine()

$name= array("1", "2", "3");
$say= array("one", "two", "three");
$data = array_combine ($name , $say );

foreach($data as $key=>$value){   
    echo $key.'='.$value.'<br>';
}

Solution 2:

$name= array("1", "2", "3");
$say= array("one", "two", "three");    
foreach($name as $key=>$value){   
    echo $value.'='.$say[$key].'<br>';
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top