如何使用带有foreach的PHP创建此数组
也许我会试着用相反的方式问你。 我在使用foreach循环创建数组时总是遇到问题 阵列应如下所示:如何使用带有foreach的PHP创建此数组,php,arrays,foreach,Php,Arrays,Foreach,也许我会试着用相反的方式问你。 我在使用foreach循环创建数组时总是遇到问题 阵列应如下所示: $arr[0]['title'] = 'Title'; --> first foreach-loop $arr[0]['title'][0]['data'] = 'Text'; --> second foreach-loop 但当我开始填充第二个foreach循环时,PHP抛出了一个错误: Cannot use string offset as an array 我希望我的for
$arr[0]['title'] = 'Title'; --> first foreach-loop
$arr[0]['title'][0]['data'] = 'Text'; --> second foreach-loop
但当我开始填充第二个foreach循环时,PHP抛出了一个错误:
Cannot use string offset as an array
我希望我的foreach有这个结果,但我找不到我的问题:
array(2) {
["fields"]=>
array(32) {
[0]=>
string(10) "Background"
["Area"]=>
array(3) {
["total"]=>
array(2) {
[0]=>
string(3) "123"
["parent"]=>
array(1) {
[0]=>
string(1) "0"
}
}
["land"]=>
array(1) {
[0]=>
string(3) "456"
}
["water"]=>
array(1) {
[0]=>
string(3) "789"
}
}
编辑:
我使用以下方法创建阵列:
$arr = array();
foreach ($nodes as $i => $node) {
$arr[$i]['title'] = $node;
// some if to select the important elements
foreach ($subnodes as $j => $subnode) {
$arr[$i]['title'][$j]['data'] = $subnode;
}
}
如果从
字段开始,则第三级密钥不是整数:
array(2) {
["fields"]=> // ROOT LEVEL string
array(32) {
[0]=> // FIRST LEVEL int
string(10) "Background"
["Area"]=> //SECOND LEVEL string
array(3) {
["total"]=> //THIRD LEVEL string
array(2) {
[0]=>
....
或者尝试使用整数键访问:
$arr[0] //FIRST LEVEL int
['title'] //SECOND LEVEL string
[0] //THIRD LEVEL int <= here is the mismatch
['data'] = 'Text';
$arr[0]//一级整数
['title']//第二级字符串
[0]//第三级int使用以下代码:
$arr = array();
foreach ($nodes as $i => $node) {
$arr[$i]['title'] = array();
$arr[$i]['title']['value'] = $node;
// some if to select the important elements
foreach ($subnodes as $j => $subnode) {
$arr[$i]['title'][$j] = array();
$arr[$i]['title'][$j]['data'] = $subnode;
}
}
您正在使用的代码是什么?您不能将值分配给$arr[0]['title']
,然后将值分配给$arr[0]['title'][0]['data']
。将$arr[0]['title']
替换为$arr[0]['title']['value']
。这应该可以解决错误。@Singhal我添加了我的foreach loopsHow,关于你发布了一些你试图读取的数据,而不是数组的外观,你是从某个地方获取数据的,是RSS吗?XML?你能提供你需要阅读的数据的更多细节吗?也许我们能为你提供更多帮助。另外,你发布的数组不完整,上面有2个条目,但只显示了其中的一个条目,基本上是其他数组中的一组数组组成了一个大的多维数组,很容易重新创建,但没有指导原则,这是不值得的。我真的很想发布它,但目前我只能在屏幕上打印它。它包含超过500行代码。我使用xPath在网站上爬行,并且能够以正确的顺序查看结果。但我想将其保存到数组中,然后将其写入数据库。但我不确定你是否真的需要这些数据。我发布了foreach循环打印的一个结果。当我无法先写入/创建时,如何尝试访问-(哦,糟糕。我不是从“字段”级别开始的。我是从第一个整数开始的。在本例中为[0]。是的,您将其标记为第一个级别。那么您有解决方案了吗?不,我没有。我在创建该数组时总是出现错误:-(你在第二个框中的意思是什么?你写了//第三级int谢谢你的帮助。我试过了,但不幸的是最后一行再次抛出相同的错误:不能将字符串偏移量用作数组。我刚刚看到你的代码顶部。为什么你在第一个循环中写“value”,在第二个循环中使用整数?@Tipo这是因为PHP数组是一个数组。)实际关联映射。可以在同一数组中使用整数或字符串作为键。