php取key的value值,从二维数组中获取指定的key->value

e29392d3a34453bce88b249960dded21.png

有时候我们得到的数据结构如下:array (size=4)

0 =>

array (size=3)

'article_id' => int 10

'status' => int 2

'link' => string 'qq.com' (length=6)

1 =>

array (size=3)

'article_id' => int 16

'status' => int 1

'link' => string 'baidu.com' (length=9)

2 =>

array (size=3)

'article_id' => int 11

'status' => int 3

'link' => string '360.com' (length=7)

3 =>

array (size=3)

'article_id' => int 16

'status' => int 3

'link' => string 'taobao.com' (length=10)

因为某些场景需要,我们需要获取以上数组中的status和link并返回一个由status和link组成的新二维数组。status和link组成的新二维数组结构如下:array (size=4)

0 =>

array (size=2)

'status' => int 2

'link' => string 'qq.com' (length=6)

1 =>

array (size=2)

'status' => int 1

'link' => string 'baidu.com' (length=9)

2 =>

array (size=2)

'status' => int 3

'link' => string '360.com' (length=7)

3 =>

array (size=2)

'status' => int 3

'link' => string 'taobao.com' (length=10)

实现以上数组结构 有人说可以在foreach里面一个一个unset()掉,但如果要删除的数组元素很多。。unset()显然不方便,且代码量还多。

除了上面说的unset还有什么方法吗? 我们可以自定义一个函数来实现

完整代码上场:$arr = array(

array('article_id' => 10,'status' => 2,'link' => 'qq.com'),

array('article_id' => 16,'status' => 1,'link' => 'baidu.com'),

array('article_id' => 11,'status' => 3,'link' => '360.com'),

array('article_id' => 16,'status' => 3,'link' => 'taobao.com'),

);

$arr2 = array('status','link');

/**

* 从二维数组中获取指定的key->value

* @author xiaozhou

* @param  array $arr     从该数组中获取(二维数组)

* @param  array $key_arr 从$arr数组中获取$key_arr中的key->value

* @return array 返回一个二维数组

*/

function get_arr($arr,$key_arr)

{

$result = [];

foreach($arr as $key => $val)

{

foreach($key_arr as $k => $v)

{

$result[$key][$v] = $val[$v];

}

}

return $result;

}

var_dump(get_arr($arr,$arr2)); //以上就是我们要的二维数组结构了

PS:

大胆走出舒适区是一种挑战,也是一种成长。学着去尝试,学着清除自己给自己设定的条条框框,接触没有接触过的人,做一些以前不敢做的事,在尝试新事物的过程中,你会收获不一样的力量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,您可以使用PHP的array_splice函数来实现将指定key插入指定位置的操作。具体步骤如下: 假设您的二维数组为$myArray,要插入的key为$newKey,要插入的位置为$position。 1. 首先,使用array_column函数获取二维数组指定key的所有,得到一个一维数组$keysArray: ``` $keysArray = array_column($myArray, '指定key'); ``` 2. 然后,在$keysArray找到要插入的位置,并使用array_search函数获取该位置的索引$index: ``` $index = array_search($position, $keysArray); ``` 3. 接着,使用array_splice函数将$newKey插入到$myArray$index位置: ``` array_splice($myArray, $index, 0, array(array('指定key' => $newKey))); ``` 4. 最后,$myArray就已经成功插入了指定key指定位置。 完整代码如下: ``` $myArray = array( array('指定key' => 'value1', '其他key' => 'value2'), array('指定key' => 'value3', '其他key' => 'value4'), array('指定key' => 'value5', '其他key' => 'value6') ); $newKey = 'value7'; $position = 'value3'; $keysArray = array_column($myArray, '指定key'); $index = array_search($position, $keysArray); array_splice($myArray, $index, 0, array(array('指定key' => $newKey))); print_r($myArray); ``` 输出结果如下: ``` Array ( [0] => Array ( [指定key] => value1 [其他key] => value2 ) [1] => Array ( [指定key] => value7 ) [2] => Array ( [指定key] => value3 [其他key] => value4 ) [3] => Array ( [指定key] => value5 [其他key] => value6 ) ) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值