web-dev-qa-db-fra.com

PHP create key => paires de valeurs dans un foreach

Je veux créer une paire clé-valeur dans un tableau au sein d'une foreach. Voici ce que j'ai jusqu'à présent:

function createOfferUrlArray($Offer) {
    $offerArray = array();

    foreach ($Offer as $key => $value) { 
        $keyval = array($key => $value[4] );

        array_Push($offerArray,$keyval);
    }

    return $offerArray;
}   

Si je déclare le tableau dans le foreach, il le remplace à chaque itération, mais le définir en dehors du foreach ne fonctionne pas non plus et provoque des triplets:

array[0] => key => value
array[1] => key => value 

Comment faire en sorte que je n'obtienne que des paires clé-valeur comme celle-ci?

key => value
key => value
17
BobFlemming

Quelque chose comme ça?

foreach ($Offer as $key => $value) { 
  $offerArray[$key] = $value[4];
}
44
Emil Vikström

Créez des paires de valeurs clés sur la ligne de commande phpsh comme ceci:

php> $keyvalues = array();
php> $keyvalues['foo'] = "bar";
php> $keyvalues['pyramid'] = "power";
php> print_r($keyvalues);
Array
(
    [foo] => bar
    [pyramid] => power
)

Obtenez le nombre de paires de valeurs clés:

php> echo count($offerarray);
2

Obtenez les clés sous forme de tableau:

php> echo implode(array_keys($offerarray));
foopyramid
4
Eric Leschinski

Créez des paires clé-valeur dans une foreach comme celle-ci:

function createOfferUrlArray($Offer) {
    $offerArray = array();

    foreach ($Offer as $key => $value) {
        $offerArray[$key] = $value[4];
    }

    return $offerArray;
}
3

En PHP> = 5.3 cela peut être fait comme ceci:

$offerArray = array_map(function($value) {
    return $value[4];
}, $offer);
1
Matěj Koubík