带数组的php搜索
我需要为我的代码更改什么? 回声只有一个字母带数组的php搜索,php,foreach,Php,Foreach,我需要为我的代码更改什么? 回声只有一个字母m 这是我的代码: $string = 'mars@email.com,123,12,1|art@hur.com,321,32,2'; $output = array(); foreach (explode('|', $string) as $key => $person) { $output[] = array( 'email' => $person[0], 'score' =&g
m
这是我的代码:
$string = 'mars@email.com,123,12,1|art@hur.com,321,32,2';
$output = array();
foreach (explode('|', $string) as $key => $person) {
$output[] = array(
'email' => $person[0],
'score' => $person[1],
'street' => $person[2],
'rank' => $person[3]
);
echo $output[0]['email'];
}
输出:m
输出应为:
$email1 = mars@email.com
$score1 = 123
$street1 = 12
$rank1 = 1
$email2 = art@hur.com
$score2 = 321
$street2 = 21
$rank2 = 2
是否可以执行此代码以输出email1和email2?
我的代码是正确的还是需要更改
谢谢。您需要使用嵌套循环;第一个循环遍历管道分隔的数据,第二个循环遍历逗号分隔的条目
$string = 'mars@email.com,123,12,1|art@hur.com,321,32,2';
$entries = explode('|', $string);
foreach ($entries as $i => $entry) {
$parts = explode(',', $entry, 4);
if (count($parts) < 4) {
// not enough parts, throw an error or something
}
printf('$email%d = %s%s', $i+1, $parts[0], PHP_EOL);
printf('$score%d = %s%s', $i+1, $parts[1], PHP_EOL);
printf('$street%d = %s%s', $i+1, $parts[2], PHP_EOL);
printf('$rank%d = %s%s', $i+1, $parts[3], PHP_EOL);
echo PHP_EOL;
}
$string='1!'mars@email.com,123,12,1|art@hur.com,321,32,2';
$entries=分解(“|”,$string);
foreach($i=>$entry形式的条目){
$parts=分解(“,”,$entry,4);
如果(计算($parts)<4){
//零件不够,出错或是什么
}
printf(“$email%d=%s%s”,$i+1,$parts[0],PHP_EOL);
printf(“$score%d=%s%s”,$i+1,$parts[1],PHP_EOL);
printf(“$street%d=%s%s”,$i+1,$parts[2],PHP_EOL);
printf(“$rank%d=%s%s”,$i+1,$parts[3],PHP_EOL);
echo PHP_EOL;
}
示例-您需要使用嵌套循环;第一个循环遍历管道分隔的数据,第二个循环遍历逗号分隔的条目
$string = 'mars@email.com,123,12,1|art@hur.com,321,32,2';
$entries = explode('|', $string);
foreach ($entries as $i => $entry) {
$parts = explode(',', $entry, 4);
if (count($parts) < 4) {
// not enough parts, throw an error or something
}
printf('$email%d = %s%s', $i+1, $parts[0], PHP_EOL);
printf('$score%d = %s%s', $i+1, $parts[1], PHP_EOL);
printf('$street%d = %s%s', $i+1, $parts[2], PHP_EOL);
printf('$rank%d = %s%s', $i+1, $parts[3], PHP_EOL);
echo PHP_EOL;
}
$string='1!'mars@email.com,123,12,1|art@hur.com,321,32,2';
$entries=分解(“|”,$string);
foreach($i=>$entry形式的条目){
$parts=分解(“,”,$entry,4);
如果(计算($parts)<4){
//没有足够的零件,抛出一个错误或什么的
}
printf(“$email%d=%s%s”,$i+1,$parts[0],PHP_EOL);
printf(“$score%d=%s%s”,$i+1,$parts[1],PHP_EOL);
printf(“$street%d=%s%s”,$i+1,$parts[2],PHP_EOL);
printf(“$rank%d=%s%s”,$i+1,$parts[3],PHP_EOL);
echo PHP_EOL;
}
这里的示例-添加到Phil的简洁解决方案中,我建议您不要以这种方式使用字符串。字符串从哪里来?复制粘贴代码。输出是“mm”而不是“m”。再加上Phil的简洁解决方案,我建议您不要以这种方式使用字符串。字符串从哪里来?复制粘贴代码。输出为“mm”而不是“m”。