简体   繁体   English

将关联数组转换为法线

[英]converting associative array to normal

If i have an array like this: 如果我有这样的数组:

array(
    "unknownString" => 34, //unknown number
    "anotherString" => 32,
    "asdf" => 21
);

How can I convert it to this: 如何将其转换为:

array(
    array("unknownString", 34),
    array("anotherString", 32),
    array("asdf", 21)
);

This should work: 这应该工作:

$array = array(
    "unknownString" => 34, //unknown number
    "anotherString" => 32,
    "asdf" => 21
);

$new_array = array();
foreach( $array as $key => $value) {
    $new_array[] = array( $key, $value);
}

If you wanted to, you could also use array_walk() : 如果愿意,也可以使用array_walk()

$new_array = array();
array_walk( $array, function( $el, $key) use( &$new_array){ 
   $new_array[] = array( $key, $el); 
});

Here's a slightly different version using array_map : 这是使用array_map的稍有不同的版本:

function swap($value, $key) {
   return array( $key, $value );
}
$arr = array(
    "unknownString" => 34, //unknown number
    "anotherString" => 32,
    "asdf" => 21
);

print_r(array_map('swap', $arr, array_keys($arr)));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM