如何在数组中搜索?

时间:2012-11-12 10:25:31

标签: php arrays search

我有一个数组

$data = array(
  array(
    "engine" => "Gecko",
    "browser" => "Firefox 1.0",
    "platform" => "2",
    "version" => "1.7",
    "grade" => "A"
  ), 
  array(
    "engine" => "SHmeko",
    "browser" => "Firefox 1.5",
    "platform" => "1",
    "version" => "1.8",
    "grade" => "B"
  )
);

如何按元素搜索? in_array不适合,因为我需要找到所有的匹配, 如果我搜索'k',我需要在元素内容'k'中找到它。

6 个答案:

答案 0 :(得分:1)

这应该有所帮助:

$key = array_search('k', $data);

答案 1 :(得分:1)

您的意思是array_search吗?

mixed array_search ( mixed $needle , array $haystack [, bool $strict = false ] )

http://de2.php.net/manual/de/function.array-search.php

答案 2 :(得分:1)

你可以尝试这个:

$friends = array( 'Bob', 'Ann', 'Peter' ); // Two persons named 'Bob'
$find = 'Bob';
$key = array_search( $find, $friends ); // Find key of given value
if ($key != NULL || $key !== FALSE) {
    unset($friends[$key]); // remove key from array
}

您也可以参考此链接

http://php.net/manual/en/function.array-search.php

答案 3 :(得分:0)

如果您尝试在此阵列中搜索特定术语/键,则可以通过以下方式执行此操作: 假设您必须在数组A中找到$data

$key = array_search(‘A’, $data);

$key将包含其值为'A'的位置

如果所需的值不是数组的一部分,它将包含FALSE

希望它能解决这个问题。

答案 4 :(得分:0)

也许尝试使用:

array array_filter ( array $input [, callable $callback = "" ] )

使用一个使用preg_match()??

的回调函数

更多信息array_filter preg_match

答案 5 :(得分:0)

    if (isset($_GET['sSearch']) && $_GET['sSearch'] != "") {

        foreach ($data as $sort) {
            foreach ($sort as $key => $val) {
                if (preg_match_all('/' . $_GET['sSearch'] . '/i', $val) != 0) {
                    $new[] = $sort;
                    break;
                }
            }
        }
        if(isset($new))$data = $new; else $data=0;
    }