-1

我有一个数组

$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”中找到它。

4

6 回答 6

1

这应该有助于:

$key = array_search('k', $data);
于 2012-11-12T10:30:37.353 回答
1

你的意思是array_search

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

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

于 2012-11-12T10:31:00.377 回答
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

于 2012-11-12T10:36:06.857 回答
0

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

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

在此之后$key将包含它对它具有值“A”的位置

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

希望它能解决这个问题。

于 2012-11-12T10:32:31.997 回答
0

也许尝试使用:

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

带有使用 preg_match() 的回调函数?

更多信息array_filter preg_match

于 2012-11-12T10:32:50.403 回答
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;
    }
于 2012-11-12T16:37:35.947 回答