如何访问Php对象上的数组值

时间:2016-03-30 09:34:39

标签: php

stdClass Object 
( 
    [string] => Array 
    ( 
        [0] => EXL 
        [1] => TEMPS 
    ) 
)


stdClass Object 
( 
   [string] => IP
) 

如何通过循环访问EXL,TEMPS和IP值?

2 个答案:

答案 0 :(得分:1)

您必须将父数组作为Object访问,但子项是正常数组。

所以试试这个。

$array->string[0];  //get the EXL 

示例:

$array = array(
    "string" => array("EXL", "TEMPS"),
    "string2" => array("EXL 2", "TEMPS 2"),
);

$obj_arr = (Object) $array;
echo "<pre>";
print_r($obj_arr);
echo "</pre>";

echo $obj_arr->string[0]."<br/>".$obj_arr->string[1];

输出

  

EXL
  TEMPS

答案 1 :(得分:0)

  

在您的情况下,这是一个Class的实例,它为您提供了一个Object。

有两种常用方法可以在对象中定位数组:

E/AndroidRuntime: FATAL EXCEPTION: main 
Process: net.logicalsteps.download_notif, PID: 23132  
java.lang.NullPointerException: Attempt to invoke virtual method 'void it.michelelacorte.elasticprogressbar.ElasticDownloadView.setVisibility(int)' on a null object referenc
        at net.logicalsteps.download_notif.download.startdownload(download.java:41)
        at net.logicalsteps.download_notif.MainActivity$1.onClick(MainActivity.java:39)
        at android.view.View.performClick(View.java:5162)
        at android.view.View$PerformClick.run(View.java:20873)
        at android.os.Handler.handleCallback(Handler.java:739)
        at android.os.Handler.dispatchMessage(Handler.java:95)                                      at android.os.Looper.loop(Looper.java:145)                                         at android.app.ActivityThread.main(ActivityThread.java:5835)                                         at java.lang.reflect.Method.invoke(Native Method)                                         at java.lang.reflect.Method.invoke(Method.java:372)                                              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1388                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1183)

或者您可以直接访问数组:

// Loop through each stored data
foreach($Object->string as $_string)
{
    echo $_string;
}

PHP中的echo $Object->string[0]; 是我们使用Objects的方式(map)。

两者都很好。

  

编辑:阅读评论

要在->循环中访问对象中保存的数组:

for