Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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_Json_Object_Properties - Fatal编程技术网

Php 试图获取非对象的属性,但它是一个对象

Php 试图获取非对象的属性,但它是一个对象,php,json,object,properties,Php,Json,Object,Properties,我试图得到一个对象的属性 function page($json, $name) { $data = json_decode($json); //$0 = '0'; $cSKU = '574294403'; var_dump($data->variations->$cSKU->dimensions->dimension); } 返回: array(3) { [0]=> object(stdClass)#5030 (1) { ["c

我试图得到一个对象的属性

function page($json, $name) {
    $data = json_decode($json);
    //$0 = '0';

    $cSKU = '574294403';
    var_dump($data->variations->$cSKU->dimensions->dimension);
}
返回:

array(3) { [0]=> object(stdClass)#5030 (1) { ["color"]=> object(stdClass)#5029 (5) { ["displayName"]=> string(5) "Farbe" ["value"]=> string(12) "schwarz-blau" ["colorHexCode"]=> string(7) "#19181d" ["baseColor"]=> string(7) "schwarz" ["iconId"]=> string(8) "26183061" } } [1]=> object(stdClass)#5032 (1) { ["version"]=> object(stdClass)#5031 (2) { ["displayName"]=> string(11) "Ausführung" ["value"]=> string(8) "RH 48 cm" } } [2]=> object(stdClass)#5034 (1) { ["unknown"]=> object(stdClass)#5033 (3) { ["displayName"]=> string(7) "Unknown" ["value"]=> string(21) "27,5+ Zoll (69,85 cm)" ["name"]=> string(7) "unknown" } } }
Trying to get property of non-object in ...
但是:

返回:

array(3) { [0]=> object(stdClass)#5030 (1) { ["color"]=> object(stdClass)#5029 (5) { ["displayName"]=> string(5) "Farbe" ["value"]=> string(12) "schwarz-blau" ["colorHexCode"]=> string(7) "#19181d" ["baseColor"]=> string(7) "schwarz" ["iconId"]=> string(8) "26183061" } } [1]=> object(stdClass)#5032 (1) { ["version"]=> object(stdClass)#5031 (2) { ["displayName"]=> string(11) "Ausführung" ["value"]=> string(8) "RH 48 cm" } } [2]=> object(stdClass)#5034 (1) { ["unknown"]=> object(stdClass)#5033 (3) { ["displayName"]=> string(7) "Unknown" ["value"]=> string(21) "27,5+ Zoll (69,85 cm)" ["name"]=> string(7) "unknown" } } }
Trying to get property of non-object in ...

怎么了?

你应该把它变成一个数组。 在
json\u decode($json,true)
中,添加第二个参数。这样,您就可以以数组的形式获取内容

var_dump($data[0]['key_val']);

根据您的
var\u dump()

array(3) { 
    [0]=> object(stdClass)#5030 (1) {
        ["color"]=> object(stdClass)#5029 (5) {
            ["displayName"]=> string(5) "Farbe"
            ["value"]=> string(12) "schwarz-blau"
            ["colorHexCode"]=> string(7) "#19181d"
            ["baseColor"]=> string(7) "schwarz"
            ["iconId"]=> string(8) "26183061"
        }
    }
    [1]=> object(stdClass)#5032 (1) {
        ["version"]=> object(stdClass)#5031 (2) {
            ["displayName"]=> string(11) "Ausführung"
            ["value"]=> string(8) "RH 48 cm"
        }
    }
    [2]=> object(stdClass)#5034 (1) {
        ["unknown"]=> object(stdClass)#5033 (3) {
            ["displayName"]=> string(7) "Unknown"
            ["value"]=> string(21) "27,5+ Zoll (69,85 cm)"
            ["name"]=> string(7) "unknown"
        }
    }
}
…颜色对象位于
维度的第一个数组元素中

这两种方法中的任何一种都有效,选择权在你

代码:()

输出:

object(stdClass)#1 (5) {
  ["displayName"]=>
  string(5) "Farbe"
  ["value"]=>
  string(12) "schwarz-blau"
  ["colorHexCode"]=>
  string(7) "#19181d"
  ["baseColor"]=>
  string(7) "schwarz"
  ["iconId"]=>
  string(8) "26183061"
}

---
array(5) {
  ["displayName"]=>
  string(5) "Farbe"
  ["value"]=>
  string(12) "schwarz-blau"
  ["colorHexCode"]=>
  string(7) "#19181d"
  ["baseColor"]=>
  string(7) "schwarz"
  ["iconId"]=>
  string(8) "26183061"
}

数组(3){
…你有一个object数组,我看到了..我该如何提取它们?你可以循环遍历对象数组。或者按索引设置目标。如果遇到问题,请包含你的JSON。我需要添加的第二个参数可能重复?你有例子吗?如果你不熟悉你编写的代码,那么我也无能为力但是它。@Angeleyes不幸的是我没有写这段代码,我甚至不是一个编码员,但是写这段代码的编码员已经不在了。所以我试着自己修复一些bug…不幸的是,我还坐在解决方案上=(是的,它很有效,很难&我不得不即兴创作,但最终我找到了自己的方法。这就是我需要的:我唯一错过的,是忽略$dimension[2],而没有[2]。我尝试了“if isset”,但没有起作用。只是做了,非常感谢。我还在苦苦挣扎,当只有[0]和[1]时,如何忽略[“dimension”][2]。你有什么提示吗?谢谢,它看起来不错,但对我来说太难理解。我已经有了一个解决方案:。现在我尝试设置($dimension[2])?foreach($dimension[2]为$var3):$var3=“”;-但我得到了“语法错误-意外的T_foreach”…谢谢你,mickmackusa,我尝试了我的和你的两个代码,但结果fputcsv只输入数组的一个值。如果你的代码echo($subset->displayName)返回“Farbe”和“Ausführung”,我需要“$varname1='Farbe'和$varname2='Ausführung',$varname3='someothervalue”。