Php数组值到键

Php数组值到键,php,arrays,sorting,Php,Arrays,Sorting,嗨,假设我有这个数组 array(2) { [0]=> string(9) "name|a-z+" [1]=> string(7) "id|0-9+" } 现在,我希望一个新的数组(或相同的,如果可能)如下所示: array(2) { [name]=> string(4) "a-z+" [id]=> string(4) "0-9+" } 我认为这个解决方案意味着爆炸和阵列结合,但我还不够好,有人能帮我吗? 提前感谢。在这里使用名为$ar

嗨,假设我有这个数组

array(2) {
  [0]=>
  string(9) "name|a-z+"
  [1]=>
  string(7) "id|0-9+"
}
现在,我希望一个新的数组(或相同的,如果可能)如下所示:

array(2) {
  [name]=>
  string(4) "a-z+"
  [id]=>
  string(4) "0-9+"
}
我认为这个解决方案意味着爆炸和阵列结合,但我还不够好,有人能帮我吗?
提前感谢。

在这里使用名为$array的原始数组,在其中循环设置所需的值

$newarray = array();
foreach ($array as $key=>$val) {
       list($one, $two) = explode('|', $val);
       $newarray[$one] = $two;
}

我相信你的意思是$array[$one]=$two,尽管我建议使用另一个变量,而不是$array,因为新条目将附加到现有条目上,你将得到两个数组的组合。然后它将不会给出与OP所需的相同的结果。他们希望密钥的值为$1(在您的示例中)。至少我是这么理解的--哦,你已经更新了你的答案。那就别管了。:)如果我改为使用$array[$one]=$two,那么在你之后,它是完全相同的;那是对的,只是有错误的副本
   function convert_my_array($arr){
       $out = array();
       foreach($arr as $obj){
            $data = explode("|", $obj);
            $out[$data[0]] = $data[1];
       }
       return $out;
   }