如何在PHP中没有foreach的情况下使用key和value实现数组的内爆?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (22)

没有foreach,我如何将数组如下所示

array("item1"=>"object1", "item2"=>"object2",......."item-n"=>"object-n");

变为

item1='object1', item2='object2',.... item-n='object-n'

我已经想过implode(),但它不行。

如果有必要,是否有可能不嵌套?

提问于
用户回答回答于

$input = array(
    'item1'  => 'object1',
    'item2'  => 'object2',
    'item-n' => 'object-n'
);

$output = implode(', ', array_map(
    function ($v, $k) {
        if(is_array($v)){
            return $k.'[]='.implode('&'.$k.'[]=', $v);
        }else{
            return $k.'='.$v;
        }
    }, 
    $input, 
    array_keys($input)
));

或:

$output = implode(', ', array_map(
    function ($v, $k) { return sprintf("%s='%s'", $k, $v); },
    $input,
    array_keys($input)
));
用户回答回答于

<?php
  $a=array("item1"=>"object1", "item2"=>"object2");
  echo http_build_query($a,'',', ');
?>

结果为:

item1=object1, item2=object2 

扫码关注云+社区