当前位置: 首页 > 知识库问答 >
问题:

使用foreach循环组合多个数组

甘西岭
2023-03-14

我有以下代码:

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

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

例如,我想要以下内容:

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。我得到的错误是

分析错误:语法错误,在/homepages/4/d864452909/htdocs/public_html/app/index.php第58行中,意外的“=>”(T_DOUBLE_ARROW),应为“)”

共有2个答案

赵景曜
2023-03-14

可以按以下方式合并对象

$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>';
}

明阳旭
2023-03-14

如果我是您,我将通过简单的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_1_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或https://3v4L.org/133c3

 类似资料:
  • 问题内容: 我想使用两个数组生成一个,一个包含国家/地区代码,另一个包含国家/地区名称。 这是一个例子: 这种方法对我不起作用。有什么建议么? 问题答案: 那是无效的。 您可能想要这样的东西… 另外,使代码成为数组的键会容易得多…

  • 问题内容: 我正在尝试使用for循环在数组内创建一个数组-这是我的代码: 不幸的是,这给了我一个 “解析错误:语法错误,意外的T_CONSTANT_ENCAPSED_STRING,预期为’)’” 对于该行: 对于出了什么问题,我有些茫然-非常感谢您的帮助。$ clients是在其他地方定义的,所以这不是问题。 问题答案: 那是无效的语法。您必须首先构建数组的“父”部分。然后使用foreach循环添

  • 问题内容: 我想在一个表中插入多个字段时遇到问题。 这是我的表格: 这是提交代码: 该查询将插入数据库,但不会插入我输入的值。 有人可以帮帮我吗? 问题答案: 您正在对而不是在名称/年龄数组上进行foreach 。您应该像这样对名称或年龄数组进行foreach: 我还要指出,您当前容易受到SQL注入的影响,因此我添加了转义字符串以获取名称/年龄的步骤。 我也强烈建议您仅在数据库中进行一次批量插入,

  • 我如何比较用户输入的这些数组呢?

  • 我有来自 RestAssured 的响应,这是一个 JsonArray 看起来类似于下面的代码 我使用代码从第一个Json元素中获取“id” 在上面的代码中,有没有一种方法可以用foreach代替for?

  • 问题内容: 我有四个foreach循环,这些循环遍历集合并根据条件进行操作。 这是我现在正在编写的代码: 主要对象(代码中的对象)来自第三方提供程序SDK,因此我无法在该部分上进行任何更改。我想问一下Stack Overflow社区是否有更好的方法来打破所有四个foreach循环。或者,如果还有其他方法可以重构此代码,使其更具可读性和可维护性。 问题答案: 在最外面的循环上使用标签,当您想跳出所有