使用 foreach 循环组合多个数组

时间:2021-03-14 14:27:21

标签: php arrays json

我有以下代码:

foreach(array_combine($names, $hashids) as $name => $hashid) {
echo '<tr>
<td>'.$counter.'</td>
<td>'.$name.'</td>
<td>'.$hashid.'</a></td>
</tr>';
}

现在我想再组合一个数组和 iterate 它在 foreach 中的值。这是一个 foreach 语句中的三个数组。谁能帮我添加它。比如我们如何在 foreach 语句中添加多个 arrays

例如我想要这样的东西:

foreach(array_combine($names, $hashids, $photoids) as $name => $hashid => $photoid) {
echo '<tr>
<td>'.$counter.'</td>
<td>'.$name.'</td>
<td>'.$hashid.'</td>
<td>'.$photoid.'</td>
</tr>';
}

但上面的代码给了我error。我得到的错误是

<块引用>

解析错误:第 58 行 /homepages/4/d864452909/htdocs/public_html/app/index.php 中的语法错误,意外的 '=>' (T_DOUBLE_ARROW),期待 ')'

2 个答案:

答案 0 :(得分:1)

如果我是你,我会用简单的 foreach() 循环这样做,

<?php
$names = ['Sample','Big Buck Bunny 60fps 4K - Official Blender Foundation Short Film.mp4'];
$hashid = ['JdpmLLdx5me7K','lWJQjwrVRZdXn'];
$photoids = ['url_1_of_the_image','url_2_of_the_image'];
$result = [];
foreach ($names as $key => $value) {
    $result[$key] = array(
        'name'  => $names[$key],
        'hashid' => $hashid[$key],
        'photoid'    => $photoids[$key],
    );
}
foreach($result as $k => $v) {
    echo '<tr>
         <td>'.$k.'</td>
         <td>'.$v['name'].'</td>
         <td>'.$v['hashid'].'</td>
         <td>'.$v['photoid'].'</td>
         </tr>';
}

工作演示: https://3v4l.org/61Tcr OR https://3v4l.org/133c3

答案 1 :(得分:1)

您可以按如下方式合并对象

$arr = array();

foreach ($names as $value) {
    array_push($arr, $value);
}

for($x = 0; $x < count($arr); $x++) {
  foreach($arr[$x] as $y => $val) {
    $arr[$x] = (object) array_merge((array) $arr[$x], (array) $hashids[$x]);
    $arr[$x] = (object) array_merge((array) $arr[$x], (array) $photoids[$x]);
  }
}

for($x = 0; $x < count($arr); $x++) {
echo '<tr>
<td>'.$arr[$x]->counter.'</td>
<td>'.$arr[$x]->name.'</td>
<td>'.$arr[$x]->hashid.'</td>
<td>'.$arr[$x]->photoid.'</td>
</tr>';
}

相关问题