如何在没有循环的情况下将值附加到PHP中的所有子数组? [英] How to append value to all subarrays in PHP without a loop?

查看:75
本文介绍了如何在没有循环的情况下将值附加到PHP中的所有子数组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下数组:

Array (
    [0] => Array (
        'id' => ...
        'name' ...
   ),
   [1] => Array (
        'id' => ...
        'name' ...
   ),
   [2] => Array (
        'id' => ...
        'name' ...
   ),
   [3] => Array (
        'id' => ...
        'name' ...
   ),
)

我想要做的是附加相同的 pid 每个子数组的键值对。是否有一种简单的方法而不必执行 foreach

What I want to do is to append the same pid key-value pair to every subarray. Is there an easy way to do this without having to do a foreach?

推荐答案

无需显式使用 foreach 或其他某种循环,就可以使用PHP的 array_map 函数。尽管将在后台执行一个循环循环,但它将返回一个数组,其中包含您的函数处理过的每个元素。

without having to explicitly use a foreach or some other kind of loop, you can use PHP's array_map function. although this will perform an iterated loop under the hood, it will return an array with each element processed by your function.

<?php
$arr = Array (
   0 => Array (
        'id' => 1,
        'name' => 'one'
   ),
   1 => Array (
        'id' => 2,
        'name' => 'two'
   ),
   2 => Array (
        'id' => 3,
        'name' => 'three'
   ),
   3 => Array (
        'id' => 4,
        'name' => 'four'
   )
);

function append_pid_kvpair($n){
  $n ['pid']= 'value';
  return $n;
}

$arr = array_map("append_pid_kvpair",$arr);

echo "<pre>".print_r($arr,true)."</pre>";

将产生此输出

Array
(
    [0] => Array
        (
            [id] => 1
            [name] => one
            [pid] => value
        )

    [1] => Array
        (
            [id] => 2
            [name] => two
            [pid] => value
        )

    [2] => Array
        (
            [id] => 3
            [name] => three
            [pid] => value
        )

    [3] => Array
        (
            [id] => 4
            [name] => four
            [pid] => value
        )

)

这篇关于如何在没有循环的情况下将值附加到PHP中的所有子数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆