如何在php中格式化结果数组中的以下数组
我有以下两个数组如何在php中格式化结果数组中的以下数组,php,arrays,Php,Arrays,我有以下两个数组 $Name = Array ( [0] => A [1] => B [2] => C [3] => D ) $zip = Array ( [0] => 411023 [1] => 411045 [2] => 411051 [3] =&
$Name = Array
(
[0] => A
[1] => B
[2] => C
[3] => D
)
$zip = Array
(
[0] => 411023
[1] => 411045
[2] => 411051
[3] => 411023
)
最后的数组应该是这样的
$final = Array
(
411045 => B
411051 => C
411023 => A B
)
希望你们明白我的意思。$name=array('A','B','C','D');
$name = array ('A', 'B', 'C', 'D');
$zip = array (411023, 411045, 411051, 411023);
$final = array ();
for ($i = 0; $i < sizeof ($zip); $i++)
{
$n = $name [$i];
$z = $zip [$i];
if (!array_key_exists ($z, $final))
$final [$z] = array ();
$final [$z][] = $n;
}
print_r ($final);
$zip=array(411023、411045、411051、411023);
$final=array();
对于($i=0;$i$name=array('A','B','C','D');
$zip=array(411023、411045、411051、411023);
$final=array();
对于($i=0;$i
您正在寻找phpsarray\u keys()
函数的第二个用例,您可以在其中指定值范围。使用它,您可以简单地迭代第二个数组:
$final=array();
foreach ($zip as $key=>$anchor) {
if (! array_key_exists($final,$key))
$final[$key]=array();
$final[$key][]=array_keys($name,$anchor);
}
这将生成一个结果$final
,其中每个元素都是一个数组,很可能是您想要的。也可以将您的问题解释为要求使用空格分隔的字符串,在这种情况下,只需额外转换生成的数组:
foreach ($final as $key=>$val)
$final[$key]=implode(' ',$val);
您正在寻找phpsarray\u keys()
函数的第二个用例,您可以在其中指定值范围。使用它,您可以简单地迭代第二个数组:
$final=array();
foreach ($zip as $key=>$anchor) {
if (! array_key_exists($final,$key))
$final[$key]=array();
$final[$key][]=array_keys($name,$anchor);
}
这将生成一个结果$final
,其中每个元素都是一个数组,很可能是您想要的。也可以将您的问题解释为要求使用空格分隔的字符串,在这种情况下,只需额外转换生成的数组:
foreach ($final as $key=>$val)
$final[$key]=implode(' ',$val);
下面是另一个解决方案:
<?php
$Name = Array('A','B','C','D');
$zip = Array(411023,411045,411051,411023);
$namezip = array_combine($Name,$zip);
$res = array();
foreach($namezip as $nam=>$zp){
if(array_key_exists($zp,$res)){
$res[$zp] .= " ".$nam;
}
else{
$res[$zp] = $nam;
}
}
echo "<pre>";
print_r($res);
?>
这里是另一个解决方案:
<?php
$Name = Array('A','B','C','D');
$zip = Array(411023,411045,411051,411023);
$namezip = array_combine($Name,$zip);
$res = array();
foreach($namezip as $nam=>$zp){
if(array_key_exists($zp,$res)){
$res[$zp] .= " ".$nam;
}
else{
$res[$zp] = $nam;
}
}
echo "<pre>";
print_r($res);
?>
Mikhail Vladimirov感谢您的片段。但我必须再次添加以下代码来生成结果数组。foreach($Key=>$val){$names=“”;foreach($val as$k=>$v){$names.='.$v;}$final_arry[$Key]=$names;}米哈伊尔·弗拉基米罗夫感谢您的片段。但我必须再次添加以下代码来生成结果数组。foreach($Key=>$val){$names=“”;foreach($val$k=>$v){$names.='.$v;}$final\u arry[$Key]=$names;}