Domanda

Ho due array. Uno contiene id = > count e l'altro contiene id = > name . Sto cercando di produrre un singolo array che è name = > count . Qualche suggerimento su un modo semplice per farlo?

Ho esaminato le Funzioni di array nel Manuale PHP e non ho visto nulla di eccezionale nel fare ciò che voglio, quindi immagino che avrò bisogno di una combinazione di funzioni, ma ho problemi a trovare qualcosa che non sia contorto.

È stato utile?

Soluzione

Qualcosa del tipo:

foreach($countA as $id => $count)
{
    $newArray[$nameA[$id]] = $count;
}

Ciò presuppone che le chiavi siano in corrispondenza tra le due matrici, poiché altrimenti le vostre esigenze sono ambigue.

Altri suggerimenti

Usa array_combine ...

$countArray = array(0 => 1, 1 => 5);
$namesArray = array(0 => "Bob", 1 => "Alice");

$assocArray = array_combine($namesArray, $countArray);

Modifica: Ecco una soluzione rivista per i nuovi requisiti espressi nel commento n. 2

$assocArray = array();
foreach($namesArray as $id => $name) {
    $assocArray[$name] = (array_key_exists($id, $countArray)) ? $countArray[$id] : 0;
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top