-4

我有一个这样的数组:

Array
(
[0] => Array
    (
        [id] => 1
        [name] => Product 1
        [color] => green
    )

[1] => Array
    (
        [id] => 2
        [1] => Product 12
        [color] => red
    )

[2] => Array
    (
        [id] => 3
        [1] => Product 3
        [color] => blue
    )
)

我希望能够根据颜色值过滤掉数据。函数如:

function filter_data($array, $color) {

}

我可以将$array$color参数作为字符串传递,而不是结果将是一个数组,其中所有项目都包含蓝色。

4

3 回答 3

1

假设您的数据如下所示:

$data = array(
    array('id' => 1, 'name' => 'Product 1', 'color' => 'green'),
    array('id' => 2, 1 => 'Product 12', 'color' => 'red'),
    array('id' => 3, 1 => 'Product 3', 'color' => 'blue'),
);

我们可以循环遍历它,并且只返回一个基于color=__desired_color__.

$final = array();
foreach ($data as $dat) {
    if ($dat['color'] == "blue") {
        $final[] = $dat;
    }
}

我希望你知道如何使它成为一个函数。祝你好运!

于 2013-06-16T01:49:51.687 回答
1

您可能应该看看如何使用foreach 循环。如果您想学习 PHP,这将非常重要。

function filter_data($array, $color) {
  $results = array();
  foreach ($array as $data) {
    if ($data['color'] == $color) {
      $results[] = $data;
    }
  }
  return $results;
}

该函数简单地遍历所有值$array并检查每个子数组color以查看它是否与给定的$color.

于 2013-06-16T02:03:14.590 回答
1

这是你的一个功能......

它允许您输入数组、要过滤的键/字段以及要搜索的搜索词...

/*
*@param $arr = array  //array of your choosing
*@param $field  string  //key value of array to search through 
*@param $item   string  //Search term
*@return array  //returns filtered array
*/

function search($arr, $field, $item){
 $result = array();
 foreach ($arr as $val) {
     if ($val[$field] == $item) {
    $result[] = $val;
  }
 }
 return $result;
 }

然后像这样使用它......

search($yourarray, "color","blue");
于 2013-06-16T02:13:17.117 回答