如何从2个键的数组中获取值

时间:2013-08-30 07:18:27

标签: php arrays

我有像

这样的数组
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>的{​​{1}}信息,其中是id,title,end_date,但是当我喜欢$ Info ['id']时,请从[user_info]输入[auctions] => Array ]当我尝试$ Info [拍卖] ['id']时,返回null如何去获取[拍卖]信息?

4 个答案:

答案 0 :(得分:1)

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

$Info[1]['auctions'][150031]['id']

答案 1 :(得分:1)

尝试:

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

或者,

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

答案 2 :(得分: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'];

}
}

试试此代码

答案 3 :(得分:0)

你的问题有点格格不对。我不知道这是因为对数组结构缺乏了解还是因为你很难解释。但基本上PHP中的数组永远不会有两个键。我将尝试在基本层面上更多地阐述该主题,并希望它能帮到你。

无论如何,你拥有的是一个数组数组。与访问包含整数的数组中的值相比,访问包含数组的数组内容的方式没有区别。唯一的区别是,如果从数组中检索值,则获得的是另一个数组。然后,您可以依次访问值,就像普通数组一样。

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

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

会打印 Josh

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

所以这和做

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

虽然这对于阅读和调试来说“更容易”,但它产生的代码量有时会使人们编写更紧凑的版本。

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