PHP:按数组的值而不是数组索引从数组中回显项

PHP:按数组的值而不是数组索引从数组中回显项,php,arrays,key,echo,Php,Arrays,Key,Echo,我有一个数组,每个项存储两个值,第一个称为“ID”,第二个称为“en”。 ID值是唯一的整数,en值是文本 现在,我想从数组中回显一个特定项,该项通过其ID引用 我尝试了下面的方法,但这是数组中的索引,因此它为我提供了一个不同于我需要的项目 有人能告诉我如何回显,例如ID=10的项而不是数组索引=10的项(这里它当前给我的是值11而不是值1) 我的PHP: <?php echo $arr[10]["en"]; ?> 多谢各位, Mike我想您希望当您传递任何值时,它会检查多维数组的

我有一个数组,每个项存储两个值,第一个称为
“ID”
,第二个称为
“en”
。 ID值是唯一的整数,en值是文本

现在,我想从数组中回显一个特定项,该项通过其ID引用

我尝试了下面的方法,但这是数组中的索引,因此它为我提供了一个不同于我需要的项目

有人能告诉我如何回显,例如ID=10的项而不是数组索引=10的项(这里它当前给我的是值11而不是值1)

我的PHP:

<?php echo $arr[10]["en"]; ?>
多谢各位,
Mike

我想您希望当您传递任何值时,它会检查多维数组的
id
索引中的值,并给出它的
键和
en
索引值

<?php

$array = Array ( 
        '0' => Array ('ID' => 10, 'en' => 'Value1' ),
        '1' => Array ('ID' => 11, 'en' => 'Value2' ),
        '2' => Array ('ID' => 12, 'en' => 'Value3' )
        );
function findKeyandValue($array,$value){

   foreach($array as $key=>$val){
    if($val['ID']== $value){
        echo 'key of the value pass='.$key.'and its en value is'.$val['en'].'<br>';
    }
}

}

findKeyandValue($array,10);
?>


输出:-

我想您希望在传递任何值时,它会检查多维数组的
id
索引中的值,并给出它的
键和
en
索引值

<?php

$array = Array ( 
        '0' => Array ('ID' => 10, 'en' => 'Value1' ),
        '1' => Array ('ID' => 11, 'en' => 'Value2' ),
        '2' => Array ('ID' => 12, 'en' => 'Value3' )
        );
function findKeyandValue($array,$value){

   foreach($array as $key=>$val){
    if($val['ID']== $value){
        echo 'key of the value pass='.$key.'and its en value is'.$val['en'].'<br>';
    }
}

}

findKeyandValue($array,10);
?>



输出:-

它始终是[0]contain ID=10还是仅作为示例?谢谢-这只是一个示例。这一点一直在变化,这就是为什么我希望使用自己的ID,因为它保持不变。它始终是[0]contaion ID=10还是仅举个例子?谢谢-这只是一个例子。这一直在变化,这就是为什么我想使用自己的ID,因为它保持不变。@jQuery.PHP.Magento.com您使我的代码与您的else无效。你可以试试。Return null必须在foreach之后,然后请在foreach之后和foreach结尾之后添加
{
。否则会使您的代码混淆。@jQuery.PHP.Magento.com投票反对程序工作的奇怪做法1)id是函数的参数。您可以使用任何变量或常量
$a=10;FindByID($arr,$a)
2)关于数组的相同-写下您使用的数组的名称。这并不重要-不同或相同name@jQuery.PHP.Magento.com您使用else使我的代码无效。您可以尝试。返回null必须在foreach之后,然后请添加
{
在foreach之后和foreach结束之后。否则会使您的代码混淆。@jQuery.PHP.Magento.com投票反对程序工作的奇怪做法1)id是函数的参数。您可以使用任何变量或常量
$a=10;FindByID($arr,$a)
2)关于数组的相同-写下您使用的数组的名称。这并不重要-不同或相同的名称也非常感谢!这很好,效果很好,但似乎与splash58的答案非常相似。我是否遗漏了什么?iIt返回给定值的键,也返回en值。感谢t帽子!这非常有用,但在这种情况下,我只需要en值。:)从
echo
中删除
$key
很简单。而不是
echo
put
return
出于某种原因,我无法让其他解决方案完全工作,可能是由于数组中的两个维度,或者我犯了一个错误,因为它总是不返回任何内容g但它与你的建议一致,所以我接受了这个建议,并投票支持splash的评论。再次感谢!非常感谢!这很好,效果也很好,但它似乎与splash58的答案非常相似。我在这里遗漏了什么吗?iIt返回给定值的键,也返回en值。谢谢!这非常有用有帮助,但在这种情况下,我只需要en值。:)从
echo
中删除
$key
很简单。而不是
echo
put
return
出于某种原因,我无法让另一个解决方案完全工作,可能是由于数组中的两个维度,或者我犯了一个错误,因为它总是不返回任何东西,但工作正常这是你的建议,所以我接受了,并投票支持splash的评论。再次感谢!
<?php

$array = Array ( 
        '0' => Array ('ID' => 10, 'en' => 'Value1' ),
        '1' => Array ('ID' => 11, 'en' => 'Value2' ),
        '2' => Array ('ID' => 12, 'en' => 'Value3' )
        );
function findKeyandValue($array,$value){

   foreach($array as $key=>$val){
    if($val['ID']== $value){
        echo 'key of the value pass='.$key.'and its en value is'.$val['en'].'<br>';
    }
}

}

findKeyandValue($array,10);
?>