将键和值对推入多维数组中
将键和值对推入多维数组中
请注意,这不是一个重复的问题,而是以下问题的扩展:
PHP array_push one array into another
array_push into a multi-dimensional array
我试图将一个多维数组array_push到另一个数组中,但想保留第二个数组的数组键。
例如:
"Joe Bloggs", 'age' => "30", 'sex' => "Male", 'title' => "Mr" ), array('name' => "Jane Bloggs", 'age' => "30", 'sex' => "Female", 'title' => "Mrs" ), array('name' => "Little Bloggs", 'age' => "10", 'sex' => "Male", 'title' => "Master" ), ); array_push ($samplearray[0],"插入的值"); print_r($samplearray); ?>
上述代码的输出结果为:
array(3) { [0]=> array(5) { ["name"]=> string(10) "Joe Bloggs" ["age"]=> string(2) "30" ["sex"]=> string(4) "Male" ["title"]=> string(2) "Mr" [0]=> string(14) "插入的值" <-- 插入的值 } [1]=> array(4) { ["name"]=> string(11) "Jane Bloggs" ["age"]=> string(2) "30" ["sex"]=> string(6) "Female" ["title"]=> string(3) "Mrs" } [2]=> array(4) { ["name"]=> string(13) "Little Bloggs" ["age"]=> string(2) "10" ["sex"]=> string(4) "Male" ["title"]=> string(6) "Master" } }
我想插入一个键和值,但尝试后失败了。你能给予建议吗?
array_push ($samplearray[0]['insertedvalue'],"插入的值");
在本地服务器上,这会返回插入键的NULL值,但在PHPfiddle上失败。
问题的原因是需要将键值对推送到多维数组中。在给定的示例中,初始的多维数组$samplearray包含了三个子数组,每个子数组都包含了"name"、"age"、"sex"和"title"这四个键,对应的值分别为"Joe Bloggs"、"30"、"Male"和"Mr"。
解决方法是使用数组的索引和键值对的方式,将新的键值对推送到多维数组中。在给定的示例中,通过以下代码将键"othername"和值"lalala"推送到了$samplearray数组的第一个子数组中:
$samplearray[0]['othername'] = 'lalala';
最后,通过print_r()函数输出整个多维数组$samplearray,可以看到更新后的结果:
Array ( [0] => Array ( [name] => Joe Bloggs [age] => 30 [sex] => Male [title] => Mr [othername] => lalala ) [1] => Array ( [name] => Jane Bloggs [age] => 30 [sex] => Female [title] => Mrs ) [2] => Array ( [name] => Little Bloggs [age] => 10 [sex] => Male [title] => Master ) )
这个多维数组中的第一个子数组现在包含了额外的键"othername"和对应的值"lalala"。