我有以下数组包含数组名称,电子邮件,电话,地址
$result=Array( [name] => Array( [0] => Xyz1 [1] => xyz2 ) [email] => Array ( [0] => xyz1@gmail.com [1] => xyz2@gmail.com ) [phone] => Array ( [0] => 23423423-1 [1] => 23423423-2 ) [address] => Array ( [0] => xyz1 [1] => xyz2 ));
我想让它像
下面那样是一个数组$r1=Array ( [name] => xyz1 [email] => xyz1@gmail.com [phone] => 23423423-1 [address] => xyz1 );
$r2=Array ( [name] => xyz2 [email] => xyz2@gmail.com [phone] => 23423423-2 [address] => xyz2 );
假设键通过它们的索引相互对应,即第一个电子邮件值对应第一个名称值等,您可以循环遍历索引和键来生成新的数组:
foreach(array_keys($result['name']) as $i) {
$row = array();
foreach(array_keys($result) as $key) {
$row[$key] = $result[$key][$i];
}
print_r($row);
}
在给定的数组中,键是相同的,它们都包含一堆数据,可能有不同数量的条目。您可以使用array_keys来获取所有的键,并获取它们的相关数据,并将它们存储在相关的键中,即键0上的name将在最终结果0键中,以此类推。试试下面的代码:
<?php
$r = array();
$keys = array_keys($result); //name,email, etc...
foreach ($keys as $value)
{
foreach ($result[$value] as $k => $v)
{
$r[$k][$value] = $v;
}
}
print_r($r);
?>
结果Array (
[0] => Array ( [name] => Xyz1 [email] => xyz1@gmail.com [phone] => 23423423-1 [address] => xyz1 )
[1] => Array ( [name] => xyz2 [email] => xyz2@gmail.com [phone] => 23423423-2 [address] => xyz2 )
)
尝试如下:
for($i=0; $i<=count($result['name']); $i++){
$r[]=array('name'=>$result['name'][$i],'email'=>$result['email'][$i],'phone'=>$result['phone'][$i],'address'=>$result['address'][$i]);
}
您可以使用$r[0]访问您的第一个记录,例如$r[0]['name']