如何使用数组中的键获取值数组

时间:2013-10-07 06:41:22

标签: php arrays

我想做什么

这是主阵列

   Array
    (
        [0] => Array
            (
                [Culture] => Array
                    (
                        [id] => 8
                        [title] => test123
                        [description] => test123
                        [year] => 2012
                        [photo] => test123.JPG                        
                        [datetime] => 0000-00-00 00:00:00
                        [status] => 0
                    )

            )

        [1] => Array
            (
                [Culture] => Array
                    (
                        [id] => 9
                        [title] => here title
                        [description] => here title
                        [year] => 2012
                        [photo] => here.JPG                        
                        [datetime] => 0000-00-00 00:00:00
                        [status] => 0
                    )

            )

        [2] => Array
            (
                [Culture] => Array
                    (
                        [id] => 11
                        [title] => here title 2
                        [description] => here title 2
                        [year] => 2012
                        [photo] => here.JPG                        
                        [datetime] => 0000-00-00 00:00:00
                        [status] => 0
                    )

            )

        [3] => Array
            (
                [Culture] => Array
                    (
                        [id] => 12
                        [title] => here title 3
                        [description] => here title 3
                        [year] => 2013
                        [photo] => here.JPG                        
                        [datetime] => 0000-00-00 00:00:00
                        [status] => 0
                    )

            )

        [4] => Array
            (
                [Culture] => Array
                    (
                        [id] => 13
                        [title] => here title 4
                        [description] => here title 4
                        [year] => 2014
                        [photo] => here.JPG                        
                        [datetime] => 0000-00-00 00:00:00
                        [status] => 0
                    )

            )

        [5] => Array
            (
                [Culture] => Array
                    (
                        [id] => 14
                        [title] => here title 5
                        [description] => here title 5
                        [year] => 2015
                        [photo] => here.JPG                        
                        [datetime] => 0000-00-00 00:00:00
                        [status] => 0
                    )

            )               
    )

现在从这个数组我想要一年的数组(按键) 像:

Array
(
[0]=>2012
[1]=>2013
[2]=>2014
[3]=>2015
)

5 个答案:

答案 0 :(得分:2)

循环遍历数组并将这些年份分配给一个新数组,其键完好无损。

$years=array();
foreach($yourArray as $key=>$value)
{
   $years[$key]=$value["Culture"]["year"];
}
$years = array_unique($years);
print_r($years);

答案 1 :(得分:1)

$years = [];
foreach($arr as $newarray){
  $years[] = $newarray['Culture']['year'];
}
$years = array_unique($years);

现在新的数组年将在旧数组中保存多年。 array_unique将摆脱所有重复的年份。

答案 2 :(得分:1)

您可以先使用foreach循环遍历数组,然后使用array_unique获取多年的数组:

$years = array();
foreach ($records as $record) {
    $years[] = $record['Culture']['year'];
}
$years = array_unique($years);

Demo!

答案 3 :(得分:1)

我的方法是使用带有匿名函数填充数组的array-walk,解决方案只有一行代码。

答案 4 :(得分:0)

它为我工作

    foreach($cultures as $row)
    {
        $year[]=$row['Culture']['year'];
    }
    $year = array_unique($year);
    $year = array_values($year);
    echo "<pre>";print_r($year);