在PHP 7.2中循环多维数组

时间:2018-12-07 22:35:29

标签: php arrays while-loop php-7.2

我刚刚升级到PHP 7.2,并且收到 PHP致命错误:未捕获的错误:无法将行{{1的字符串偏移量用作数组 }}中的旧代码...

$myarray[$ex][0] = $oldarray[$z]['ID'];

我已经了解到,最新版本的PHP具有backward incompatible changes,因此我将有问题的行更改为 $ex=0; $z=0; while($oldarray[$z]['ID']){ if(0==$duplicatename or !$duplicatename){ $ex++; $myarray[$ex][0] = $oldarray[$z]['ID']; /*...*/ } $z++; } ,但是我遇到了相同的错误。

此代码所来自的站点很旧,所以我真的期望更多的问题,而不仅仅是这段代码。谁能告诉我我在做什么错。

这里是$myarray[$ex]['ID'] = $oldarray[$z]['ID'];的var_dump,我对其进行了稍微的编辑以更改内容...

  

array(4){[0] => array(11){[“ ID”] => int(59480)[“ boxid”] => int(11158)[“ galleryurl”] =>字符串(75 )“ http:// ...” [“ gallerytitle”] =>字符串(63)“图库标题在此处” [“” gallerytype“] =>字符串(5)” photo“ [” gallerydate“] => int( 1542544634)[“ galleryactive”] =>字符串(1)“ y” [“ usersubmitted”] =>字符串(1)“ n” [“ userip”] => NULL [“ galleryhot”] =>字符串(1)“ n“ [” gallidentify“] => int(372239531175)} 1 =>数组(11){[” ID“] => int(59324)[” boxid“] => int(11158)[” galleryurl“] =>字符串(79)” http:// ...“ [”“ gallerytitle”] =>字符串(45)“图库标题在这里” [“” gallerytype“] =>字符串(5)”照片“ [ “ gallerydate”] =>整数(1538477012)[“ galleryactive”] =>字符串(1)“ y” [“ usersubmitted”] =>字符串(1)“ n” [“ userip”] => NULL [“ galleryhot” ] =>字符串(1)“ n” [“ gallidentify”] => int(428341079414)}

1 个答案:

答案 0 :(得分:1)

是否可以使用foreach对其进行重构?

http://php.net/manual/en/control-structures.foreach.php

使用以下物品会得到什么:

print_r($oldarray);
print_r($myarray);

您很有可能在第二维数组中拥有对象... 我们需要看一段更大的代码来有效地帮助您...

如果您进行更改,将会发生什么:

$myarray[$ex][0] = $oldarray[$z]['ID'];

通过这种方式:

$myarray[$ex][0] = $oldarray[$z].ID;