将相同的键=>值对分配给PHP中的多个数组

Posted

技术标签:

【中文标题】将相同的键=>值对分配给PHP中的多个数组【英文标题】:Assigning the same key => value pair to multiple arrays in PHP 【发布时间】:2015-02-09 05:07:17 【问题描述】:

我正在尝试编写一个函数,将相同的 key => value 对分配给多个 arrays。但是分配没有发生。

<?php

// for debugging
error_reporting(E_ALL);

// arrays is an array of reference arrays
function assignKeyValueToArrays($arrays, $key, $value) 

    if(!is_scalar($key) || !is_array($arrays)) 
        return false;
    

    foreach($arrays as $array) 
        if(!is_array($array)) return false;
        echo "setting $key to $value";
        $array[$key] = $value;
    



$s = array();
$t = array();

assignKeyValueToArrays(array(&$s, &$t), "a", "blahblah");

// should print array(1) "a" => "blahblah" but both print array(0) 
var_dump($s);
var_dump($t);

?>

上下文是我有一个脚本,它正在执行数据库查询并将键分配给临时$queryParams 数组和$jsonResponse 数组。我可以只做两个作业,但我想要一个更通用的解决方案,可以处理更多的数组。

【问题讨论】:

【参考方案1】:

您也应该通过引用将$array 传递给foreach 循环,例如&amp;$array

查看此Demo

【讨论】:

以上是关于将相同的键=>值对分配给PHP中的多个数组的主要内容,如果未能解决你的问题,请参考以下文章

如何在 PHP 中的键 => 值对数组中获取最小值、最大值和平均值?

如何在php中的数组中插入新的键值对?

PHP 根据配置转换数组中的键名 方便给前端的时候改键名

如何取得数组中前3个最大值的键值?最好是php语言,其他也可。

php 数组操作符

array_merge和加号+的区别