从数组中获取此数组中的值的数据

时间:2014-10-18 22:34:14

标签: php arrays

我有这种类型的数组:

$fruits = array(
    array(
        'fruit'       => "Banana", 
        'color'       => "Yellow",
        'latinName'   => "Banana",
        'origin'      => "Africa"
    ),
);

如果我有color值,如何获得fruit

我正在使用此结构,因为我想使用此数组,通过提供fruit namecolorlatinName来获取其他信息。

感谢。

3 个答案:

答案 0 :(得分:0)

不确定这是否是最好的方式,但它确实有效(也许还有一些功能,但是对不起):

$fruits = array(
    array(
        "fruit"         => "Banana", 
        "color"         => "Yellow",
        "latinName"     => "Banana",
        "origin"        => "Africa"
    ),
    array(
        "fruit"         => "Apple", 
        "color"         => "Red",
        "latinName"     => "Dunno1",
        "origin"        => "Dunno2"
    ),
    array(
        "fruit"         => "Orange", 
        "color"         => "Orange",
        "latinName"     => "Dunno3",
        "origin"        => "Dunno4"
    ),
);

for($i=0; $i<count($fruits); $i++){
    if($fruits[$i]["fruit"]=="Banana"){
        echo $fruits[$i]["color"];
    }
}

答案 1 :(得分:0)

查看PHP docs中的array_flip。虽然我同意你的数据结构使这个相当尴尬,但这个功能可能会缓解一些问题。

答案 2 :(得分:0)

除非我错过了一些非常明显的东西,否则似乎是一个非常微不足道的foreach声明:

<?php 

    $input='Banana';
    $fruits = array(
        array(
        'fruit'         => "Banana", 
        'color'         => "Yellow",
        'latinName'     => "Banana",
        'origin'        => "Africa"
        ),
    );

    foreach($fruits as $val)
    {
        if($val['fruit']==$input)
        {
            echo $val['color'];
        }
    }

?>

编辑:在数组的结构上,这个简单的2d数组没有任何问题。如果有的话,我会考虑为你的外部数组使用一个关键的命名结构,这可能会让你更容易使用:

$fruits = array(
    "Banana" => 
            array(
            'color'         => "Yellow",
            'latinName'     => "Banana",
            'origin'        => "Africa"
    )
);

然后,您可以使用公共名称访问正确的内部数组 - 并且您可以根据需要使用所有内置的PHP函数来查找/访问密钥。