Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, estou desenvolvendo um plugin pra wordpress que precisa unir 2 arrays "usando os valores do array keys como chaves e os valores do array values como valores correspondentes".
Porém, o array_combine ignora chaves iguais, o que não quero!
Achei está função:
<?php
function array_combine_($keys, $values)
{
$result = array();
foreach ($keys as $i => $k) {
$result[$k][] = $values[$i];
}
array_walk($result, create_function('&$v', '$v = (count($v) == 1)? array_pop($v): $v;'));
return $result;
}
print_r(array_combine_(Array('a','a','b'), Array(1,2,3)));
?>
que imprime:
Array ( [a] => Array ( [0] => 1 [1] => 2 ) [b] => 3 )
Mas, eu queria que ficasse assim:
Array ( [a] => 1 [a] => 2 [b] => 3 )
Se puderem me ajudar, agradeço.
O que vc quer é impossível, não dá para ter duas chaves com o mesmo valor mesmo sendo de tipos diferentes, ele sempre irá substituir o primeiro pelo próximo ex.:
var_dump( array( '1' => 0, 1 => 1 ) );
Saída:
array
1 => int 1
O que pode se feito é usar um array multidimensional:
Saída:
array
'a' =>
array
:seta: array_ merge_ recursive
:thumbsup: