【问题标题】:What is the best way to merge an array of arrays in PHP?在 PHP 中合并数组的最佳方法是什么?
【发布时间】:2020-09-13 14:22:38
【问题描述】:

我有一个数组,我通过 Ajax 调用发布并尝试将它与原始数组进行比较。底线是我最终将使用array_diff() 来比较它们。但我的问题是我不能完全以相同的方式形成数组。 $originalArray 来自检查复选框(如果它在数据库中)的函数。现在,当用户单击表单上的按钮时,它将通过 Ajax 调用发送复选框 id 的数组,从而生成 $postArray

这是一个例子:

$postArray = array(3){ 
        [55555]=>string(2)"on" 
        [66666]=>string(2)"on" 
        [77777]=>string(2)"on" 
}
$originalArray = 
    array(1){ ["appid"]=>string(5) "55555"}, 
    array(1){ ["appid"]=>string(5) "66666"}, 
    array(1){ ["appid"]=>string(5) "77777"}

我想基本上将$originalArray 全部放入一个类似于$postArray 的数组中。执行array_merge($originalArray) 将生成一个数组的数组,这也不完全正确。任何帮助表示赞赏。请耐心等待,因为我对编码和 Stack Overflow 还比较陌生。如果您需要更多信息,我很乐意尽我所能。

【问题讨论】:

  • 嗨,给我们看看你写了什么,它产生了什么。然后告诉我们它的作用有什么问题,以及你真正希望结果是什么样子

标签: php arrays ajax


【解决方案1】:

您可以使用 array_combine() 从键数组和值数组创建关联数组。

使用array_column()$originalArray 获取所有appid 值。

array_combine(array_column($originalArray "appid"), array_fill(0, count($originalArray), "on"));

【讨论】:

    【解决方案2】:

    array_fill_keys() 的组合用于创建具有一组特定键值的数组,array_column() 用于提取 appid...

    $postArray = array_fill_keys(array_column($originalArray,"appid"), "on");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-28
      • 2021-12-13
      • 2010-12-17
      • 2012-08-30
      • 1970-01-01
      • 2011-04-17
      • 2021-09-06
      相关资源
      最近更新 更多