Php 将数组键从数字更改为名称

Php 将数组键从数字更改为名称,php,arrays,explode,Php,Arrays,Explode,我有一个按行分隔值的字符串,因此我使用: $array = explode("\r\n", $string); 这会将值向上分隔,但会使用数字作为键。从字符串中分离的每个值实际上都是键,后跟值,即..键=值。我想用值中=前面的数字替换数组中的数字。因此,不是: array (size=2) 0 => string 'key1=value1' (Lenght=11) 1 => string 'key2=value2' (Lenght=11) 我想: arr

我有一个按行分隔值的字符串,因此我使用:

 $array = explode("\r\n", $string);
这会将值向上分隔,但会使用数字作为键。从字符串中分离的每个值实际上都是键,后跟值,即..键=值。我想用值中=前面的数字替换数组中的数字。因此,不是:

 array (size=2)
     0 => string 'key1=value1' (Lenght=11)
     1 => string 'key2=value2' (Lenght=11)
我想:

 array (size=2)
     key1 => string 'value1' (Lenght=6)
     key2 => string 'value2' (Lenght=6)

在“=”上分解,用相应的键添加此值,并删除与此二重唱对应的上一个条目:

foreach ($array as $key => $arr) {
  $val = explode ('=', $arr);
  $array[$val[0]] = $val[1]; // Add key1 => string 'value1' (Lenght=6)
  unset ($array[$key]); // Remove 0 => string 'key1=value1' (Lenght=11)
}

如果您想创建一个新数组并保留上一个数组,请跳过未设置部分。

可能会分解您的值并在新数组中使用它们,像这样

$array1 = array(
    'key1=value1', 'key2=value2'
);
$array2 = array();
foreach($array1 as $element) {
    $explodedElement = explode('=', $element);
    $array2[$explodedElement[0]] = $explodedElement[1];
}
编辑:

为了解释字符串值中的“=”字符,我们应该在分解元素的第一个值之后使用“=”内爆分解值,我们假设第一个值始终是键值。您还应该考虑键中的空格,这就是我们应该修剪键和内爆值的原因

$array1 = array(
    'url = url.com?id=123456', 'key2=value2'
);
$array2 = array();
foreach($array1 as $element) {
    $explodedElement = explode('=', $element);
    $array2[trim($explodedElement[0])] = trim(implode('=',array_slice($explodedElement, 1)));
}

如果它解决了你的答案,请接受答案:)嗨,我试过了,但它说我必须再等一会儿。。。我想我很快就说了一点。令人恼火的是,其中一些值也有相等的值。字符串传回一个url,url中有一个相等的值,即“url”=>string''有什么想法吗?