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''有什么想法吗?