Php 调用时间按引用传递错误,无法修复代码
自从我更新到PHP5.4之后,我发现错误的调用时间传递引用已经被删除,正如我读到的,删除Php 调用时间按引用传递错误,无法修复代码,php,arrays,function,error-handling,associative-array,Php,Arrays,Function,Error Handling,Associative Array,自从我更新到PHP5.4之后,我发现错误的调用时间传递引用已经被删除,正如我读到的,删除&应该可以解决这个问题。是的,但是现在我的代码不再工作了 我需要用字符串raw400创建一个关联数组,其中键是t和f加上数字(例如t410和f410),并且值必须是-后面的值,而不带- 例如: t410-1:06,f410-15.4 将成为: key: t410 value: 1:06 key: f410 value 15.4 代码 $raw400 = 't410-1:06,f410-15.4,t390
&
应该可以解决这个问题。是的,但是现在我的代码不再工作了
我需要用字符串raw400创建一个关联数组,其中键是t和f加上数字(例如t410和f410),并且值必须是-后面的值,而不带-
例如:
t410-1:06,f410-15.4
将成为:
key: t410
value: 1:06
key: f410
value 15.4
代码
$raw400 = 't410-1:06,f410-15.4,t390-1:06,f390-15.6,t370-1:05,f370-16.0,t350-1:05,f350-16.2,t330-1:04,f330-16.3,t310-1:00,f310-16.7';
$array = explode(',',$raw400);
$nm400 = array();
array_walk($array,'walk', $nm400);
function walk($val, $key, $nm400){
$nums = explode('-',$val);
$nm400[$nums[0]] = $nums[1];
}
非常感谢您的帮助,谢谢。只需利用此技巧即可
<?php
$raw400 = 't410-1:06,f410-15.4,t390-1:06,f390-15.6,t370-1:05,f370-16.0,t350-1:05,f350-16.2,t330-1:04,f330-16.3,t310-1:00,f310-16.7';
parse_str(str_replace(array('-',','),array('=','&'),$raw400),$arr);
print_r($arr);
使用和
Array
(
[t410] => 1:06
[f410] => 15.4
[t390] => 1:06
[f390] => 15.6
[t370] => 1:05
[f370] => 16.0
[t350] => 1:05
[f350] => 16.2
[t330] => 1:04
[f330] => 16.3
[t310] => 1:00
[f310] => 16.7
)
<?php
$raw400 = 't410-1:06,f410-15.4,t390-1:06,f390-15.6,t370-1:05,f370-16.0,t350-1:05,f350-16.2,t330-1:04,f330-16.3,t310-1:00,f310-16.7';
preg_match_all("/([^-, ]+)\,([^-,]+)/", $raw400, $res);
$array = array_combine($res[2], $res[1]);
print_r($array);
Array
(
[f410] => 1:06
[t390] => 15.4
[f390] => 1:06
[t370] => 15.6
[f370] => 1:05
[t350] => 16.0
[f350] => 1:05
[t330] => 16.2
[f330] => 1:04
[t310] => 16.3
[f310] => 1:00
)