我需要这样的输出。你能帮我解决这个问题吗?
a-1,2,4
b-3
对于以下代码:
<?php
$paytype = array('a','a','b','a');
$payno= array(1,2,3,4);
for($i=0;$i<count($paynum);$i++){
$paytypes = $paytype[$i];
$paynum = $payno[$i];
}
?>
请帮助
只需像这样使用array_unique、array_map和array_keys:
<?php
$paytype = array('a','a','b','a');
$payno= array(1,2,3,4);
$uniqArr = array_unique($paytype); //Get all the unique value from array
foreach ($uniqArr as $value) {
echo $value . "-" . implode(",",array_map("matchVal",array_keys($paytype,$value)))."<br/>";
}
function matchVal($x) {
global $payno;
return $payno[$x];
}
输出:
a-1,2,4
b-3
演示
你可以试试这个:
<?php
$paytype = array('a','a','b','a');
$payno= array(1,2,3,4);
$newArr = array();
for($i=0;$i<count($paytype);$i++){
if(!isset($newArr[$paytype[$i]])) {
$newArr[$paytype[$i]] = $payno[$i];
} else {
$newArr[$paytype[$i]] = $newArr[$paytype[$i]].",".$payno[$i];
}
}
print '<pre>';print_r($newArr);
?>
输出:
Array
(
[a] => 1,2,4
[b] => 3
)
另一种选择:-
只需使用一个简单的foreach
循环:-
$paytype = ['a','a','b','a'];
$payno= [1,2,3,4];
$res = [];
foreach($paytype as $k=>$v){
$res[$v] = empty($res[$v]) ? $payno[$k] : $res[$v].','.$payno[$k];
}
print '<pre>';print_r($res);
输出:-
Array
(
[a] => 1,2,4
[b] => 3
)
如果你想输出
a-1,2,4
b-3
然后在最后再加一个前臂。
foreach($res as $k=>$v){
echo "$k-$v<br>";
}
只需使用此代码。
$paytype = array('a','a','b','a');
$payno= array(1,2,3,4);
$result = array();
for($i=0;$i<count($paytype);$i++){
$result[$paytype[$i]][] = $payno[$i];
}
$var = '';
foreach($result as $k => $v)
{
$var .= "{$k} - ". implode(",", $v) . "<br />";
}
print_r($var);
结果:
a - 1,2,4
b - 3