基本上我需要将一些数据分类到前5名最佳销售中。 我已经设法将我使用过的3个数组分组。
$c = array_combine($PriceArray,$namesArray,$ProductArray);
krsort($c);
价格数组是总数。 (有点傻名,我才意识到) namesarray是名字数组 和product array是产品代码列表
我需要在像
这样的表格中打印它“|£3.45 | Jelly Beans | 120 |” 所以他们有自己的专栏,但目前正在打印它 | 3.45 |数组|阵列|
我使用
echo '<td>'.$ProductArray[$i].'</td>'.'<td>'.$year.'</td>'.'<td>'.array_keys($c,$c[$i]).'<td>'. $PriceArray[$i].'</td>';
打印它。
提前致谢
Array
(
[0] => 77358.47
[1] => 111004.98
[2] => 227194.9
[3] => 84645.75
[4] => 29693.58
[5] => 198867.2
[6] => 110779.5
[7] => 210530.62
[8] => 102916.79
[9] => 186630.75
[10] => 140143.24
[11] => 48984.48
[12] => 74759.34
[13] => 204793.14
[14] => 82192.5
[15] => 167402.7
[16] => 58232.72
[17] => 216302.32
[18] => 26353.92
[19] => 149993.1
)
Array
(
[0] => Jelly beans
[1] => Banana milkshake powder
[2] => Edam Cheese
[3] => Hairnet
[4] => Aubergine jam
[5] => White bread
[6] => Brown bread
[7] => Purple bread
[8] => Plain flour
[9] => Striped flour
[10] => Soft tissues
[11] => Anti personnel mines
[12] => Chicken fillets
[13] => Beef cubes
[14] => Marshmallows
[15] => Fizzy carrot juice
[16] => Low fat lard
[17] => Suet dumpling mix
[18] => Gravy powder
[19] => Cherry pie filling
)
Array
(
[0] => 121
[1] => 122
[2] => 123
[3] => 124
[4] => 125
[5] => 126
[6] => 127
[7] => 128
[8] => 129
[9] => 130
[10] => 131
[11] => 132
[12] => 133
[13] => 134
[14] => 135
[15] => 136
[16] => 137
[17] => 138
[18] => 139
[19] => 140
) 产品代码年份名称销售总额
答案 0 :(得分:0)
function zip() {
$args = func_get_args();
$zipped = array();
$n = count($args);
for ($i=0; $i<$n; ++$i) {
reset($args[$i]);
}
while ($n) {
$tmp = array();
for ($i=0; $i<$n; ++$i) {
if (key($args[$i]) === null) {
break 2;
}
$tmp[] = current($args[$i]);
next($args[$i]);
}
$zipped[] = $tmp;
}
return $zipped;
}
function cmp($a, $b)
{
if($a[0] == $b[0]){
return 0;
}
return ($a[0] < $b[0]) ? -1 : 1;
}
$PriceArray = array( 4.56, 1.23, 7.89 );
$namesArray = array( 'ab', 'cd', 'ef' );
$ProductArray = array( '11', '22', '33' );
$c = zip($PriceArray, $namesArray, $ProductArray);
usort($c, 'cmp');
foreach($c as $prices)
{
//$prices[0] == price
//$prices[1] == name
//$prices[2] == code
echo "{$prices[0]}|{$prices[1]}|{$prices[2]}\n";
打印:
1.23 | CD | 22个
4.56 | AB | 11个
7.89 | ef | 33
我正在使用Python本身提供的zip功能来组合N阵列并将它们“压缩”在一起。
因此,获取所有给定数组的索引0,并使其成为新的数组条目。为所有可用指数做到这一点。
cmp
函数有两个变量,在本例中是两个数组,其中index-0 = price,1 = name,2 = code。你显然想按价格上涨排序,因此我们正在比较价格指数。这导致基于价格的新/排序数组。
您还可以使用以下内容代替usort($c, 'cmp');
来电:
usort($c, function($a, $b){
if($a[0] == $b[0]){
return 0;
}
return ($a[0] < $b[0]) ? -1 : 1;
});
但是,这仅适用于PHP版本&gt; = 5.3
答案 1 :(得分:0)
只需将键和值放入新数组即可。
$ NewNamesArray = array_values($ c); $ NewPriceArray = array_keys($ c)