你可以使用array_push()将一个数组推入另一个数组吗?

3

这是将一个数组推入另一个数组的正确方式吗?此外,所有数组推送都需要两个参数吗?

$edge = array( "nodeTo" => "$to");
array_push( $node["adjacencies"], $edge);

3
没错,假设$node['adjacencies']是一个数组,那么这是正确的方法。也可以使用$node['adjacencies'][] = $edge - Michael Berkowski
你是指要合并两个数组,还是将你的数组添加到那个数组中(使它成为子数组)? - Matthew
1
array_push() 总是需要至少2个参数,否则就没有意义。但数组追加语法更好看。 $array[] = $thing_to_append; - Michael Berkowski
另外,您不需要写成"$to",只需写成$to即可。 - nickb
2个回答

4
文档 在这方面非常清楚:

注意: 如果您使用 array_push() 将一个元素添加到数组中,最好使用 $array[] = ,因为这样不会产生调用函数的额外开销。

函数定义需要两个参数。 您至少需要被推入的元素和要推动的内容。 array_push 的真正设计是同时推送/附加多个元素。

0

array_push 函数会将您提供的内容作为目标数组的新元素添加到最后。

因此,您的示例会将一个新数组添加到 $node["adjacencies"] 的末尾,这将是您的节点连接数组。对于您的示例,我认为您想要使用

$node["adjacencies"] += $edge

来正确组合邻接图。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接