PHP关联数组重复键
我有一个关联数组,但是当我使用下面的函数添加值时,它似乎覆盖了相同的键。 有没有办法让不同的值有多个相同的键? 或者是有另一种格式相同的数组forms?
我希望有:
42=>56 42=>86 42=>97 51=>64 51=>52 etc etc
码:
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; }
不,您不能在关联数组中拥有多个相同的键。
但是,您可以拥有每个对应的值都是数组的唯一键,而且这些数组对于每个键都有多个元素。
所以,而不是这个…
42=>56 42=>86 42=>97 51=>64 51=>52
…你有这个:
Array ( 42 => Array ( 56, 86, 97 ) 51 => Array ( 64, 52 ) )
关键是variables的扩展。 如果你覆盖variables…你覆盖variables。
不,你不能。 我使用的解决方法是将每个键/值对作为具有2个元素的新数组:
$test = array( array(42,56), array(42,86), array(42,97), array(51,64), array(51,52) )
例如,您可以使用以下命令访问第二个键(= 42):
$test[1][0]
和第二个值(= 86)使用:
$test[1][1]
我也有相同的需求也创build一个数组与相同的键,(只是为了保持性能通过使用两个循环,而不是4循环)。
通过使用这个:[$ increment。“ – ”。$ domain_id] => $ article_id; print_r()后,每个域中的文章列表如下所示:
$AllSa = Array ( [1-5] => 143 [2-5] => 176 [3-5] => 992 [4-2] => 60 [5-2] => 41 [6-2] => 1002 [4-45] => 5 [5-45] => 18 [6-45] => 20 )
然后通过循环遍历这个表来按区域关联文章:
$AssocSAPerDomain = array(); $TempDomain = ""; $TempDomain_first = 0; foreach($tree_array as $id_domain => $id_sa){ if( !$TempDomain && $TempDomain_first == 0 ){ $TempDomain = substr(strrchr($id_domain, "-"), 1); $TempDomain_first = 1; } $currentDomain = substr(strrchr($id_domain, "-"), 1); //if($TempDomain == $currentDomain) $AssocSAPerDomain[$currentDomain][] = $id_sa; $TempDomain = substr(strrchr($id_domain, "-"), 1); }
你得到这个
$assoc= Array ( [5] => 143 => 176 => 992 [2] => 60 => 41 => 1002 [45]=> 5 => 18 => 20 )