【问题标题】:return the index of an array when searched by value按值搜索时返回数组的索引
【发布时间】:2016-04-13 15:36:34
【问题描述】:

我有一个来自 MySQL 结果的数组。我希望能够按值搜索并获取数组中的索引位置。

我的数组$array_result 在下面给出

Array (
    [0] => Array ( [scores] => 90 ) 
    [1] => Array ( [scores] => 80 ) 
    [2] => Array ( [scores] => 73 )
    [3] => Array ( [scores] => 0 ) 
    [4] => Array ( [scores] => 0 ) 
    [5] => Array ( [scores] => 0 ) 
    [6] => Array ( [scores] => 0 ) 
    [7] => Array ( [scores] => 0 ) 
    [8] => Array ( [scores] => 0 ) 
    [9] => Array ( [scores] => 0 ) 
    [10] => Array ( [scores] => 0 ) 
    [11] => Array ( [scores] => 0 ) 
    [12] => Array ( [scores] => 0 ) 
    [13] => Array ( [scores] => 0 ) 
    [14] => Array ( [scores] => 0 ) 
    [15] => Array ( [scores] => 0 ) 
    [16] => Array ( [scores] => 0 ) 
    [17] => Array ( [scores] => 0 )
)

示例:我想搜索80 并获取1 的索引。我已经尝试过这个功能,但没有得到正确的响应:array_search(80, $array_result)

【问题讨论】:

  • 这是一个多维数组,所以array_search 不起作用。
  • @FrayneKonok 谢谢你认为哪种方法最好?
  • @dakab 感谢编辑

标签: php mysql arrays algorithm


【解决方案1】:

使用 foreach 循环来实现这一点。 Online link,试试这个。您的第一个匹配项将返回索引。

数组

$array_result = array( 
    array ("scores" => 90 ), 
    array ("scores" => 80 ), 
    array ("scores" => 73 ), 
    array ("scores" => 0 ), 
    array ("scores" => 0 ), 
    array ("scores" => 0 ), 
    array ("scores" => 0 ), 
    array ("scores" => 0 ), 
    array ("scores" => 0 ), 
    array ("scores" => 0 ), 
    array ("scores" => 0 ), 
    array ("scores" => 0 ), 
    array ("scores" => 0 ), 
    array ("scores" => 0 ), 
    array ("scores" => 0 ), 
    array ("scores" => 0 ), 
    array ("scores" => 0 ), 
    array ("scores" => 0 ) 
);

foreach($array_result as $key => $val){
    if(in_array(80, $val)){
        $out = $key;
        break;
    }       
}

echo $out;

输出

1

【讨论】:

    猜你喜欢
    • 2012-01-15
    • 2019-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-13
    • 2015-08-21
    • 1970-01-01
    相关资源
    最近更新 更多