0

我有类似的数组

Array
 (
[1] => Array
    (
        [user_info] => Array
            (
                [id] => 1
                [name] => Josh
                [email] => u0001@josh.com
                [watched_auctions] => 150022 150031
            )

        [auctions] => Array
            (
                [150022] => Array
                    (
                        [id] => 150022
                        [title] => Title of auction
                        [end_date] => 2013-08-28 17:50:00
                        [price] => 10
                    )

                [150031] => Array
                    (
                        [id] => 150031
                        [title] => Title of auction №
                        [end_date] => 2013-08-28 16:08:03
                        [price] => 10
                    )

            )

    )

所以我需要<td>[auctions] => Array id,title,end_date 的位置输入信息,但是当我喜欢 $Info['id'] 并id从 [user_info] 输入时,当我尝试 $Info[auctions]['id'] 时,返回 null如何去获取 [拍卖] 信息?

4

4 回答 4

1

鉴于您问题的数据结构,正确的方法是例如:

$Info[1]['auctions'][150031]['id']
于 2013-08-30T07:21:44.883 回答
1

尝试:

foreach( $info['auctions'] as  $key=>$each ){
    echo ( $each['id'] );
}

或者,

foreach( $info as $key=>$each ){
    foreach( $each['auctions'] as  $subKey=>$subEach ){
        echo ( $subEach['id'] );
    }    
}
于 2013-08-30T07:23:32.380 回答
0
$array =array();
foreach($mainArray as $innerArray){

$array[] = $innerArray['auctions'];
}

foreach($array as $key=>$val){
foreach($val as $k=>$dataVal){
    # Here you will get Value of particular key
    echo $dataVal[$k]['id'];

}
}

试试这个代码

于 2013-08-30T07:34:21.677 回答
0

你的问题有点畸形。我不知道这是由于对数组结构缺乏了解,还是因为您很难解释。但基本上 PHP 中的数组永远不会有两个键。我将尝试在基本层面上对该主题进行更多说明,并希望它对您有所帮助。

无论如何,你所拥有的是一个数组数组。访问包含数组的数组的内容与访问包含整数的数组中的值没有区别。唯一的区别是,如果您从数组中检索一个值,您得到的是另一个数组。然后,您可以像普通数组一样访问该数组的值。

如果您愿意,您可以在“一个”行中完成所有这些操作。例如

echo $array[1]["user_info"]["name"]

这将打印乔希

但实际发生的事情并不神奇。您从数组中检索索引1处的元素。这恰好是一个数组,因此您可以从中检索索引 *user_info* 处的元素。你得到的也是一个数组,所以你检索索引name处的元素。

所以这和做的一样

$arrayElement = $array[1];
$userInfo = $arrayElement["user_info"];
$name = $userInfo["name"];

尽管这“更容易”阅读和调试,但它产生的代码量有时会让人们编写更紧凑的版本。

因为你得到了一个数组,你也可以做一些事情,比如用一个foreach循环迭代你的数组,并在这个循环中迭代你从第一个数组中的每个索引获得的每个数组。这可以是一种快速迭代多维数组并打印或对整个结构中的每个元素执行某些操作的方法。

于 2013-08-30T07:38:08.400 回答