【问题标题】:how to add change keys of array and add the keys from another array values in foreach loop如何添加数组的更改键并在foreach循环中添加来自另一个数组值的键
【发布时间】:2019-05-01 06:29:12
【问题描述】:

我有一个数组

 $arr=array(
        [0]=>a
        [1]=>b);

我还有另一个数组

 $arr2=array(
            [0]=>array(
                 [0]=>3
                 [1]=>4)
             [1]=>array(
                 [0]=>5
                 [1]=>6)
               );

我希望第二个数组看起来像这样

 $arr3=array(
            [0]=>array(
                 [a]=>3
                 [b]=>4)
             [1]=>array(
                 [a]=>5
                 [b]=>6)
               );

这意味着我想用第一个数组值替换第二个数组键, 第二个数组键键可以是多个

提前致谢。

【问题讨论】:

  • 提示:array_combine
  • @Boni,欢迎来到 StackOverflow,请先看看here。另外,如果您尝试过,您可以分享您尝试的方法的代码
  • 您不必这样做,但您可以改进它。只需按照我之前发布的链接即可。也不要因为别人的 cmets 而受到伤害,这就是这里的工作方式。当人们看到你尝试过某事时,他们更愿意提供帮助,无论你是多么的初学者:)
  • @Towkir 不是初学者,这只是我回答的一部分,我编写了一个用于上传 Excel 表格并在数据库中提交数据的算法,但我无法实现代码,所以我问我当然可以证明谢谢。
  • 抱歉,我不是说是初学者,我指的是任何人(这只是比喻)。你不需要证明,我的意思是提高。反正。编码快乐!!

标签: php arrays logic


【解决方案1】:

使用array_combine 和简单的foreach 循环作为:

foreach($arr2 as $e)
    $arr3[] = array_combine($arr, $e);

如果您希望更改第二个数组而不创建第三个数组,请使用:

foreach($arr2 as &$e)
    $e = array_combine($arr, $e);

【讨论】:

  • 我发现观看另一个答案的进度很有趣......编辑,编辑,编辑......删除。可能是因为这是这样做的方法。 +1
  • 是的,谢谢,为什么不赞成@nick 我在问这个问题时犯了一些错误?
  • @Boni 我没有投反对票,但投反对票的人留下了评论,说明了他们为什么投反对票。通常,您希望在提出问题时至少发布自己解决问题的尝试。
  • @Boni 唯一的期望是您发布一些您尝试过的代码。当然,如果你不能解决问题,你应该问。
【解决方案2】:

array_walk() - 将用户提供的函数应用于数组的每个成员

$res = [];
array_walk($arr2, function($v, $k) use ($arr,&$res){
  $res[] = array_combine($arr, $v);
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-12
    • 2022-08-18
    • 2018-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多