我一直在尝试使用键和值设置数组,但似乎无法使我的代码正常工作。我的数组的一个例子如下......
array(4) {
[0]=>
string(23) "Dry Traction 4 out of 5"
[1]=>
string(23) "Wet Traction 4 out of 5"
[2]=>
string(34) "Steering Responsiveness 4 out of 5"
[3]=>
string(22) "Noise Level 3 out of 5"
}
使用这个数组,我使用substr()来分隔数字(最后10个字符),但希望字符串的第一部分成为关键。我的substr代码如下......
foreach($array as $item) {
$value = substr($item, -10);
}
我觉得我觉得很糟糕,因为我想自己解决这个问题,但我非常感谢所有人的帮助!
非常感谢你!
答案 0 :(得分:0)
我一般不喜欢带有空格的键,但这样做会有你想做的
$array = array();
foreach($array as $item) {
$key = trim(substr($item, 0, strlen($item) - 10));
$value = substr($item, -10);
$array[$key] = $value;
}
我只使用substr()
两次。第一个也使用strlen()
来帮助确定在哪里结束我们的子字符串,并使用trim()
来消除空格。第二个与获取字符串数字部分的代码相同。然后我把它放到一个数组中,前者为键,后者为值。
答案 1 :(得分:0)
约翰的answer会这样做,您也可以使用array_walk()
$new_arr = array(); //<--- Your new array which is going to be modified
array_walk($yourarray,function (&$v,$k) use($new_arr) {
$new_arr[trim(substr($v,0,-10))] = substr($v,-10);
} );
print_r($new_arr);