Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-在数组中找不到索引_Php_Arrays - Fatal编程技术网

PHP-在数组中找不到索引

PHP-在数组中找不到索引,php,arrays,Php,Arrays,我有一个数组$attribGarden,看起来像这样: array(3) { [0]=> array(2) { ["property"]=> array(3) { ["typeKind"]=> string(9) "isolation" ["typeId"]=> int(76) ["valueId"]=> string(3) "386" } ["child

我有一个数组
$attribGarden
,看起来像这样:

array(3) {
  [0]=>
  array(2) {
    ["property"]=>
    array(3) {
      ["typeKind"]=>
      string(9) "isolation"
      ["typeId"]=>
      int(76)
      ["valueId"]=>
      string(3) "386"
    }
    ["children"]=>
    array(2) {
      [0]=>
      array(2) {
        ["property"]=>
        array(3) {
          ["typeKind"]=>
          string(9) "isolation"
          ["typeId"]=>
          int(79)
          ["valueId"]=>
          string(3) "395"
        }
....
....
....
我在同一页上还有一个函数:

function ____storeAttribGarden($data, $parent = 0){

    foreach($data as $value){

        if($value['property']['typeKind'] == 'isolation'){
            // some action here
        }
    }
}
当代码执行时,会抛出以下错误:

未定义索引:第1743行E:\xyz\proc_product.php中的属性

//第1743行引用函数的if()条件

我试着打印(数组键($value))恰好在
if
条件之前,并获得以下输出:

Array
(
    [0] => property
    [1] => children
)
打印($value)
给出以下信息:

Array
(
    [property] => Array
        (
            [typeKind] => isolation
            [typeId] => 76
            [valueId] => 386
        )

    [children] => Array
        (
            [0] => Array
                (
                    [property] => Array
                        (
                            [typeKind] => isolation
                            [typeId] => 79
                            [valueId] => 395
                        )
很明显,数组中有一个名为“property”的索引。但该功能无法识别它。有什么问题吗?我做错什么了吗


谢谢你的时间。

起初我以为你只是把你的等级制度搞砸了。但是,我假设您通过的是
$attribGarden
,如下所示:

____storeAttribGarden($attribGarden);
如果是这样的话,那么请检查您是连续收到三个错误,还是仅收到一个错误。如果您只得到一个,那么
$attribGarden
的结构可能不统一


要么是这样,要么是我最初的假设是正确的,而你的等级制度仍然是错误的。

起初我以为你只是把你的等级制度搞砸了。但是,我假设您通过的是
$attribGarden
,如下所示:

____storeAttribGarden($attribGarden);
如果是这样的话,那么请检查您是连续收到三个错误,还是仅收到一个错误。如果您只得到一个,那么
$attribGarden
的结构可能不统一


要么是这样,要么是我最初的假设是正确的,而您的层次结构仍然是不正确的。

我认为Stephen是正确的,数据结构也不统一。一种简单的调试方法是在有问题的
if
语句前面加上以下一行:

if ( !isset( $value[ 'property' ][ 'typeKind' ) ) print_r( $value );

这将帮助您找到数据结构中出现混乱的地方…

我认为Stephen是对的,数据结构并不统一。一种简单的调试方法是在有问题的
if
语句前面加上以下一行:

if ( !isset( $value[ 'property' ][ 'typeKind' ) ) print_r( $value );


这将帮助您找到数据结构中出现问题的地方…

尝试
var\u dump
,这将为您提供更多信息,如字符串长度。确保其中没有不可见的字符。这并不能解决您当前的问题,但我建议您使用具有明确定义的属性/方法的面向对象方法。我认为您应该使用这样的方法:if($value[0]['property']['typeKind']=='isolation'){//someaction here}@WesleyMurch他做了
array\u键($value)
。是否确定$data中的每个元素都有键
属性
?请尝试
var\u dump
,它会提供更多信息,如字符串长度。确保其中没有不可见的字符。这并不能解决您的直接问题,但我建议使用具有明确定义的属性/方法的面向对象方法我想你应该用这个:如果($value[0]['property']['typeKind']=='isolation'){//some action here}@WesleyMurch他做了
array\u key($value)
。你确定$data中的每个元素都有key
属性吗?
?谢谢你的提示,但是它说找不到索引“0”。顺便说一下,如果
caluse中的数组没有数字索引。我完全重写了我的答案。;)谢谢Stephen!嵌套中的一个数组不包含索引
属性
。由于数组太大,而实际函数是递归的,所以没有注意到它。非常感谢您的洞察力!没问题,很高兴我能帮忙!谢谢你的提示,但它说找不到索引“0”。顺便说一句,
if
caluse中的数组没有数字索引。我完全重写了我的答案谢谢斯蒂芬!嵌套中的一个数组不包含索引
属性
。由于数组太大,而实际函数是递归的,所以没有注意到它。非常感谢您的洞察力!没问题,很高兴我能帮忙!是的,法拉利!我的数组在某一点上没有索引。修正了,一切正常!谢谢你的指导!是的,法拉利!我的数组在某一点上没有索引。修正了,一切正常!谢谢你的指导!