web-dev-qa-db-ja.com

PHP create key => foreach内の値のペア

Foreach内の配列にキーと値のペアを作成したい。ここに私がこれまでに持っているものがあります:

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

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

        array_Push($offerArray,$keyval);
    }

    return $offerArray;
}   

Foreach内で配列を宣言すると、各反復で配列が上書きされますが、foreachの外で配列を定義しても機能せず、トリプレットが発生します。

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

このようなキーと値のペアのみを取得するようにするにはどうすればよいですか?

key => value
key => value
17
BobFlemming

このようなもの?

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

phpshコマンドラインで次のようにキーと値のペアを作成します:

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

キーと値のペアの数を取得します。

php> echo count($offerarray);
2

キーを配列として取得します。

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

次のようにforeach内にキーと値のペアを作成します。

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

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

    return $offerArray;
}

PHP> = 5.3では、次のように実行できます。

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