我有一个关联数组,但是当我使用下面的函数向它添加值时,它似乎覆盖了相同的键.有没有办法让多个相同的键具有不同的值?或者是否有另一种格式相同的数组形式?
我希望有:
42=>56
42=>86
42=>97
51=>64
51=>52
etc etc
Run Code Online (Sandbox Code Playgroud)
码:
function array_push_associative(&$arr) {
$args = func_get_args();
foreach ($args as $arg) {
if (is_array($arg)) {
foreach ($arg as $key => $value) {
$arr[$key] = $value;
$ret++;
}
}else{
$arr[$arg] = "";
}
}
return $ret;
}
Run Code Online (Sandbox Code Playgroud)
Amb*_*ber 32
不,您不能在关联数组中拥有多个相同的键.
但是,您可以使用唯一键,每个键的对应值都是数组,并且这些数组的每个键都有多个元素.
而不是这个......
42=>56 42=>86 42=>97 51=>64 51=>52
Run Code Online (Sandbox Code Playgroud)
你有这个:
Array (
42 => Array ( 56, 86, 97 )
51 => Array ( 64, 52 )
)
Run Code Online (Sandbox Code Playgroud)
不,你不能有。我使用的解决方法是将每个键/值对作为一个包含 2 个元素的新数组:
$test = array(
array(42,56),
array(42,86),
array(42,97),
array(51,64),
array(51,52)
)
Run Code Online (Sandbox Code Playgroud)
例如,您可以使用以下命令访问第二个密钥 (=42):
$test[1][0]
Run Code Online (Sandbox Code Playgroud)
和第二个值(= 86)使用:
$test[1][1]
Run Code Online (Sandbox Code Playgroud)