【问题标题】:PHP: echo item from array by its value instead of by its array indexPHP:通过其值而不是其数组索引从数组中回显项目
【发布时间】:2015-06-15 18:37:06
【问题描述】:

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

现在我想回显数组中的一个特定项目,通过它的 ID 引用它。

我尝试了以下方法,但这是通过数组中的索引进行的,因此它给了我一个与我需要的不同的项目。

谁能告诉我如何回显,例如ID = 10 的项目,而不是数组索引 = 10 的项目(这里它目前给我 Value11 而不是 Value1)?

我的 PHP:

<?php echo $arr[10]["en"]; ?>

数组:

Array ( 
        [0] => Array ([ID] => 10 [en] => Value1 ),
        [1] => Array ([ID] => 11 [en] => Value2 ),
        [2] => Array ([ID] => 12 [en] => Value3 ),
        // ...
        [10] => Array ([ID] => 20 [en] => Value11 ),
        // ...
      )

提前非常感谢, 迈克

【问题讨论】:

  • 是否总是 [0] 包含 ID=10 或仅作为示例?
  • 谢谢 - 这只是一个例子。这一直在变化,这就是为什么我想使用自己的 ID,因为它保持不变。

标签: php arrays key echo


【解决方案1】:

我认为您希望当您传递任何值时,它会检查该值是否存在于您的多维数组的 id 索引处,并给出它的 key 和它的 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);
?>

输出:- https://eval.in/382010

【讨论】:

  • 也非常感谢!这很棒并且效果很好,但它似乎与 splash58 的答案非常相似。我在这里错过了什么吗?
  • i它返回给定值的键,也返回en值。
  • 谢谢!这很有帮助,但在这种情况下,我只需要 en 值。 :)
  • echo 中删除$key 很简单。而不是 echo 而是 return
  • 由于某种原因,我无法让其他解决方案充分发挥作用,可能是由于数组中的二维或我犯了一个错误,因为它总是什么都不返回,但它符合您的建议,所以我接受了这一点并投票支持splash的cmets。再次感谢!
【解决方案2】:
function FindByID($arr, $id) {
  foreach($arr as $item) {
   if ($item['ID'] === $id) return $item['en'];
  } 
  return null;
}

echo FindByID($arr, 11);

【讨论】:

  • @jQuery.PHP.Magento.com 你让我的代码与你的其他代码无效。你可以试试。返回 null 必须在 foreach 之后
  • 那么请在 foreach 和 foreach 结束后添加{。否则它会让你的代码混乱。
  • @jQuery.PHP.Magento.com 投票反对程序工作的奇怪做法
  • 1) id 是函数的参数。您可以使用任何变量或常量$a = 10; FindByID($arr, $a);
  • 2) 数组也一样——写下你使用的数组的名称。没关系 - 不同或相同的名称
猜你喜欢
  • 2017-08-27
  • 2016-11-08
  • 2014-07-01
  • 2021-05-23
  • 2011-12-27
  • 2021-11-28
  • 1970-01-01
  • 1970-01-01
  • 2015-06-23
相关资源
最近更新 更多