PHP bir dizinin anahtarlarını ve değerlerini birleştirmek için nasıl

3 Cevap php

PHP anahtar / değer çiftleri bir dizi var ki:

array( 'foo' => 'bar', 'baz' => 'qux' );

Aşağıdaki gibi görünen bir dizi için bu dönüştürmek için basit yolu nedir?

array( 'foo=bar', 'baz=qux' );

yani

array( 0 => 'foo=bar', 1 => 'baz=qux');

Perl, ben böyle bir şey yapmak istiyorum

map { "$_=$hash{$_}" } keys %hash

panoply of array functions böyle bir şey PHP var mı? Ben baktım hiçbir şey uygun bir çözüm gibi görünüyordu.

3 Cevap

Bu sorun için bir başka seçenek: PHP 5.3 + bir kapak ile array_map() kullanabilirsiniz On (PHP önce 5.2 ile bunu yapabilirsiniz, ancak kod oldukça dağınık alacaksınız!).

"Ah, ama üzerinde array_map() sadece değeri olsun!".

Evet, bu doğru, ama biz birden fazla dizi eşleyebilirler! :)

$arr = array( 'foo' => 'bar', 'baz' => 'qux' );
$result = array_map(function($k, $v){
    return "$k=$v";
}, array_keys($arr), array_values($arr));

chaos 'cevabı güzel ve straightfoward olduğunu. Olsa daha genel anlamda, size map { "$_=$hash{$_}" } keys %hash örnek ile değindiğim ne array_map() fonksiyonunu kaçırmış olabilir.

Bunu yapmak için bir "meraklı" bir şekilde P =

// using '::' as a temporary separator, could be anything provided
// it doesn't exist elsewhere in the array
$test = split( '::', urldecode( http_build_query( $test, '', '::' ) ) );