php – 如何过滤关联数组?
发布时间:2020-12-13 13:11:10 所属栏目:PHP教程 来源:网络整理
导读:我必须处理重构,以减少 PHP中的代码行数,以过滤关联数组. 所以我在MySQL中选择DB,以获得一个关联数组.所以我的“对象”有一个类别和一个姓氏字段. while ($row = mysqli_fetch_array($result)) { $array[] = $row['category']; $array[] = $row['Surname'];
我必须处理重构,以减少
PHP中的代码行数,以过滤关联数组.
所以我在MySQL中选择DB,以获得一个关联数组.所以我的“对象”有一个类别和一个姓氏字段. while ($row = mysqli_fetch_array($result)) { $array[] = $row['category']; $array[] = $row['Surname']; } 我想从这个数组中获取,就像许多其他子数组一样,按类别划分.我的意思是类别数组标识可能是: $categories = array("A","B","C","D"); 所以我想要的是为每个类别获取一个数组,其中包含该类别的所有姓氏. $arrayFiltered = method_filter($array_asso,"A"); 最后我想要这样的东西: foreach ($categories as &$value) { $arrayFiltered = method_filter($array_asso,$value); my_method_which_needs_the_filtered_array($arrayFiltered); } 预先感谢您的帮助.
警长的方法是最简单的.只是为了它,这是一个
array_filter() 的方法(以防你必须有一个未经过滤的数组):
$array = []; $categories = array("A","D"); while ($row = mysqli_fetch_array($result)) { $item = [ 'category' => $row['category'],'surname' => $row['Surname'] ]; $array[] = $item; } $categorized = []; foreach ($categories as $category) { $categorized[$category] = array_filter($array,function($item) use ($category) { return $item['category'] == $category; }); } 这是一个概念证明,无需数据库连接: $categories = array("A","D"); $array = [ ['category' => 'A','Surname' => 'A Name 1'],['category' => 'A','Surname' => 'A Name 2'],['category' => 'B','Surname' => 'B Name 1'],'Surname' => 'B Name 2'],'Surname' => 'B Name 3'],['category' => 'C','Surname' => 'C Name'],]; $categorized = []; foreach ($categories as $category) { $categorized[$category] = array_filter($array,function($item) use ($category) { return $item['category'] == $category; }); } print_r($categorized); 输出: Array ( [A] => Array ( [0] => Array ( [category] => A [Surname] => A Name 1 ) [1] => Array ( [category] => A [Surname] => A Name 2 ) ) [B] => Array ( [2] => Array ( [category] => B [Surname] => B Name 1 ) [3] => Array ( [category] => B [Surname] => B Name 2 ) [4] => Array ( [category] => B [Surname] => B Name 3 ) ) [C] => Array ( [5] => Array ( [category] => C [Surname] => C Name ) ) [D] => Array ( ) ) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何正确覆盖PHP CodeSniffer规则集中的规则/嗅探,并避免重
- php – 脚本终止时调用函数
- php – 在不使用foreach的情况下反复遍历多维数组
- PHP得到mssql的存储过程的输出参数功能实现
- PhpStorm通过Composer设置项目时“通往php的空路径”
- PHP错误Warning:mysql_query()解决方法
- zend-framework – 从CodeIgniter更改为Zend Framework真的
- php – 具有授权检查程序的Symfony kernel.response监听器
- php – 将句子中的第一个单词更改为大写
- PHP中使用foreach()遍历二维数组的简单实例