在PHP数组中搜索

在PHP数组中搜索,php,Php,我有一个数组,其中包含一些数据。比如说--- 现在我如何编写这样的函数呢--- 我已经这样试过了--- 但这会返回null,我如何在category为category1的条件下在数组中搜索所有属于该类别的名称… 我知道这可能是一个非常愚蠢的问题,但人们有时会被困在一个非常基本的问题上。 希望有人知道答案。下面的代码将帮助您 <?php $data = array( 'CATEGORY 1' => array( array('id'=> 0, 'name

我有一个数组,其中包含一些数据。比如说---

现在我如何编写这样的函数呢---

我已经这样试过了---

但这会返回null,我如何在category为category1的条件下在数组中搜索所有属于该类别的名称…

我知道这可能是一个非常愚蠢的问题,但人们有时会被困在一个非常基本的问题上。
希望有人知道答案。

下面的代码将帮助您

<?php
$data = array(

    'CATEGORY 1' => array(
        array('id'=> 0, 'name' => 'John', 'category' => 'CATEGORY1'),
        array('id'=> 1, 'name' => 'Jack', 'category' => 'CATEGORY1'),
        array('id'=> 2, 'name' => 'Jame', 'category' => 'CATEGORY1'),
    ),
    'CATEGORY 2' => array(
        array('id'=> 0, 'name' => 'Mile', 'category' => 'CATEGORY2'),
        array('id'=> 1, 'name' => 'Mike', 'category' => 'CATEGORY2'),
        array('id'=> 2, 'name' => 'Matt', 'category' => 'CATEGORY2'),
    )

);

$post = 'CATEGORY 1';
$pluck = 'name';

var_dump( array_reduce($data['CATEGORY 1'], function($result, $array) use ( $pluck ) {
    isset($array[$pluck]) && $result[] = $array[$pluck];
    return $result;
}, array()));
<?php
$data = array(

    'CATEGORY 1' => array(
        array('id'=> 0, 'name' => 'John', 'category' => 'CATEGORY1'),
        array('id'=> 1, 'name' => 'Jack', 'category' => 'CATEGORY1'),
        array('id'=> 2, 'name' => 'Jame', 'category' => 'CATEGORY1'),
    ),
    'CATEGORY 2' => array(
        array('id'=> 0, 'name' => 'Mile', 'category' => 'CATEGORY2'),
        array('id'=> 1, 'name' => 'Mike', 'category' => 'CATEGORY2'),
        array('id'=> 2, 'name' => 'Matt', 'category' => 'CATEGORY2'),
    )

);

$post='CATEGORY 1';
$elements=$data[$post];
$names=array();
foreach ($elements as $ele) {
$names[]=$ele['name'];
}

print_r($names);

下面的代码将帮助您解决问题

<?php
$data = array(

    'CATEGORY 1' => array(
        array('id'=> 0, 'name' => 'John', 'category' => 'CATEGORY1'),
        array('id'=> 1, 'name' => 'Jack', 'category' => 'CATEGORY1'),
        array('id'=> 2, 'name' => 'Jame', 'category' => 'CATEGORY1'),
    ),
    'CATEGORY 2' => array(
        array('id'=> 0, 'name' => 'Mile', 'category' => 'CATEGORY2'),
        array('id'=> 1, 'name' => 'Mike', 'category' => 'CATEGORY2'),
        array('id'=> 2, 'name' => 'Matt', 'category' => 'CATEGORY2'),
    )

);

$post='CATEGORY 1';
$elements=$data[$post];
$names=array();
foreach ($elements as $ele) {
$names[]=$ele['name'];
}

print_r($names);

简单地使用
foreach
就像

$result = [];
foreach($data as $value){
  foreach($value as $k => $v){
      if($v['category'] == 'CATEGORY1')
        $result[] = $v['name'];
  }
}
print_r($result);

简单地使用
foreach
就像

$result = [];
foreach($data as $value){
  foreach($value as $k => $v){
      if($v['category'] == 'CATEGORY1')
        $result[] = $v['name'];
  }
}
print_r($result);

只需使用
foreach
loop@Uchiha谢谢,我已经试过了,但不知道在foreach中把条件放在哪里,类别是category1…只需使用
foreach
loop@Uchiha谢谢,我已经试过了,但是我不知道在foreach中把条件放在哪里,类别是category1。。。
$result = [];
foreach($data as $value){
  foreach($value as $k => $v){
      if($v['category'] == 'CATEGORY1')
        $result[] = $v['name'];
  }
}
print_r($result);