2014-06-14 10:55

# 在多维数组中查找子数组

I have a multidimensional array and would like to find an array by specific payment_status: My array below and I would like to return an array by payment_status.

``````[orders] => Array
(
[0] => Array
(
[total_price] => 995.94
[avg] => 995.940000
[count] => 1
[payment_status] => 1
)

[1] => Array
(
[total_price] => 779.64
[avg] => 779.640000
[count] => 1
[payment_status] => 2
)

[2] => Array
(
[total_price] => 1763.49
[avg] => 1763.490000
[count] => 1
[payment_status] => 3
)

function get_sub_array((int)\$payment_status) {

}
``````

How can I do this? Thanks!

#### 图片转代码服务由CSDN问答提供 功能建议

``` ``` [orders] =＆gt; 数组
（
[0] =＆gt;数组
（
[total_price] =＆gt; 995.94
[平均] =＆gt; 995.940000
[计数] =＆gt; 1
[payment_status] =＆gt  ; 1
）

[1] =＆gt;数组
（
[total_price] =＆gt; 779.64
[avg] =＆gt; 779.640000
[count] =＆gt; 1
[payment_status  ] =＆gt; 2
）

[2] =＆gt;数组
（
[total_price] =＆gt; 1763.49
[avg] =＆gt; 1763.490000
[count] =＆gt; 1 \  n [payment_status] =＆gt; 3
）

}

我该怎么办？ 这个？

``````
` `
``` 点赞 写回答 关注问题 收藏 分享 邀请回答 ```
``` 4条回答 默认 最新 dtv8189 2014-06-14 11:02 已采纳 \$arr = array('orders' => array ( 0 => Array ( 'total_price' => 995.94, 'avg' => 995.940000, 'count' => 1, 'payment_status' => 1 ), 1 => Array ( 'total_price' => 779.64, 'avg' => 779.640000, 'count' => 1, 'payment_status' => 2 ), 2 => Array ( 'total_price' => 1763.49, 'avg' => 1763.490000, 'count' => 1, 'payment_status' => 3 ) )); function get_sub_array(\$payment_status,\$arr) { \$arrRet = array(); foreach(\$arr as \$key=>\$val){ if(\$val['payment_status'] == \$payment_status) array_push(\$arrRet,\$val); } return \$arrRet; } \$arrRes = get_sub_array(1,\$arr['orders']); print_r(\$arrRes); 点赞 打赏 评论 分享 douhuitan5863 2014-06-14 10:59 This would work I think. function get_sub_array(\$arr, \$payment_status) { foreach(\$arr as \$item) { if(\$item['payment_status'] === \$payment_status) { return \$item; } } } 点赞 打赏 评论 分享 douzi2778 2014-06-14 11:01 Assuming you want to retrieve multiple orders with the same status, to return them all you could do: function get_sub_array(\$orders, \$payment_status) { \$result = array(); foreach (\$orders as \$order) { if (\$order['payment_status'] == \$payment_status) { array_push(\$result, \$order); } } return \$result; } 点赞 打赏 评论 分享 dongtui2029 2014-06-14 11:17 You can use array_filter. For example if you want a sub array containing all values with payment status 3: \$sub_array = array_filter(\$arr['orders'],function(\$val){ return \$val['payment_status'] === 3; }); 点赞 打赏 评论 分享 报告相同问题？ 提交 关注问题 相关推荐 更多相似问题 在多维数组中查找子数组 php 2014-06-14 10:55 回答 4 已采纳 \$arr = array('orders' => array ( 0 => Array ( 在多维数组中查找重复值 php 2016-01-24 19:40 回答 2 已采纳 \$output = array(); // loop through each user foreach (\$users as \$id => \$ips) { // loop thro 在多维数组中查找索引 php 2013-09-16 18:16 回答 3 已采纳 You will want to do a foreach loop for this. But honestly if you structured your array indexes bet php实现在多维数组中查找特定value的方法 2020-10-23 20:44 主要介绍了php实现在多维数组中查找特定value的方法,实例分析了php实现多维数组的遍历及unset删除的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下 python实现在多维数组中挑选符合条件的全部元素 2020-09-18 09:40 今天小编就为大家分享一篇python实现在多维数组中挑选符合条件的全部元素，具有很好的参考价值，希望对大家有所帮助。一起跟随小编过来看看吧 php在多维数组中根据键名快速查询其父键以及父键值的代码 2020-10-28 13:56 有一个多维数组，有多少维大家...假如我们要在这个数组中找一个键为'subIndex'的值，我们可以用for、foreach等方法遍历查找 反过来，假如我们任意给出一个或多个键，要求找出这个键的父级数组的键和值。这又如何实现？在嵌套的多维数组中查找键值 php 2018-06-11 21:58 回答 2 已采纳 Here's my approach at writing a function to check the keys of your array using the Recursive Itera 在多维数组中查找匹配项 php 2017-11-04 17:26 回答 4 已采纳 The phone number is in the key [0] of each first-level array element, so you can't compare each in 在多维数组中查找并删除\$ key的所有元素 php 2015-05-09 21:02 回答 2 已采纳 You don't need to pass by reference since you're not trying to change a value in an array. But you JS实现遍历不规则多维数组的方法 2020-10-18 15:52 主要介绍了JS实现遍历不规则多维数组的方法,涉及javascript数组递归遍历相关实现与使用技巧,需要的朋友可以参考下 php实现遍历多维数组的方法 2020-10-23 06:40 主要介绍了php实现遍历多维数组的方法,涉及php针对多维数组的遍历与递归操作实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下 python统计多维数组的行数和列数实例 2020-09-20 08:17 今天小编就为大家分享一篇python统计多维数组的行数和列数实例，具有很好的参考价值，希望对大家有所帮助。一起跟随小编过来看看吧在多维数组中查找值 php 2012-05-30 07:35 回答 7 已采纳 I would use array_filter. If you have PHP 5.3 or up, you can do it like this: \$favorite = "Mario" 在多维数组中查找值 - PHP php 2015-08-11 16:58 回答 1 已采纳 Try this: <?php \$festivals = array ( 1 => array( 'festivalname' => 'Festiva PHP在多维数组中查找并返回邻居值 php 2014-08-02 21:36 回答 1 已采纳 You can just loop through the array and access them directly. \$search_term = "news-article"; \$cou C语言二维数组中的查找的实例 2020-08-29 23:19 主要介绍了C语言二维数组中的查找的实例的相关资料,需要的朋友可以参考下 python多维数组索引,查找数组的索引在Python 2多维数组 2020-11-29 01:34 weixin_39851809的博客 I have an arrayv = (x,y,z)and two multidimensional arrayl = (a,b,c),(d,e,f)andr = (g,h,i),(l,m,n),(x,y,z).I want to know the index of v no matter if is in the first or second multidimensional array.... JS算法题之查找数字在数组中的索引位置 2020-11-29 00:17 我们必须对数字数组进行升序排序，并找出给定数字在该数组中的位置。 算法说明 将值（第二个参数）插入到数组（第一个参数）中，并返回其在排序后的数组中的最低索引。返回的值应该是一个数字。 例如 getIndexToIns...在多维php数组中查找父键 php 2014-01-09 20:03 回答 1 已采纳 Instead of echo key(\$array); you want echo \$element; since \$element is the variable assigned 多维数组递归查找 2020-08-19 18:16 chen-beibei的博客 let test = [{id:1},{id:5,children:[{id:6,children:[{id:7}]}]}] function chbehavior(arr, id) { let res; (function deepId(arr, id) { for (let a of arr) { if (a.id === id) { res = a;... 没有解决我的问题, 去提问```
``` 点击登录 提问题 ◇ 欢迎建议意见 ◇ 回答问题能得到什么 ◇ 如何写高质量的提问和回答 ◇ 问答平台结题规则说明 加急问题 ¥101 文件对比，颜色标注，对比过程，形成字典 ¥100 namenode和datanode无法启动解决方案 ¥100 谁知道哪个app上面可以获取自己想要的链接。或者是购买链接 ¥100 求不定方程式整数解问题。 ¥100 yii2的advance版本使用yii2-rest-rbac的示例，认证方式oauth2 ¥100 使用https后，net4.6编译的web应用的oracle连接池异常，不能持续保持连接。但是在普通http协议下，oracle连接池是工作正常的，与oracle服务端的连接能持续。 ¥100 萌新求问会的朋友跑通这两个数据集 ¥100 高通平台camx相机驱动 ¥50 几何画板函数交点局部放大预览图像如何制作？ ¥50 如何设计控制汽车运动的程序 ```
``` ```
``` window.csdn.sideToolbar = { options: { afterFinished: function () { setTimeout(function () { var helphtml = '<a class="option-box" data-type="help" href="https://ask.csdn.net/questions/7441224" target="_blank">'+'<img src="https://g.csdnimg.cn/side-toolbar/2.5/images/bangzhucopy.png" alt="" srcset="">'+ '<span class="show-txt">帮助</span></a>'; \$('.csdn-side-toolbar > a:last').before(helphtml); }, 300); }, contentEl: document.getElementsByClassName('floor')[0] } } ```