所以我被我朋友的PHP
脚本卡住了。我想做的是对pavadinimas
进行排序,如果有多个相同的pavadinimas
,那么按o_pavadinimas
进行排序,这部分就可以了。但所有信息都是随机的。我的意思是我只对列进行排序,而不对行进行排序。伙计们,你们有什么想法吗,因为我用完了…
<?php
$file = "Muniko dešros Abraitis Vilius.munikas@gmail.com Www.abraitis.lt Vilius Munikas Muniko dešros Belenkas Vilius.munikas@gmail.com Www.belenkas.lt Vilius Munikas Tomo dešros Abraitis tomas@gmail.com Www.abraitis.lt Tomas Vilemaitis Tomo dešros Belenkas tomas@gmail.com Www.belenkas.lt Tomas Vilemaitis Dino dešros Dešrynas dinas@gmail.com Www.derynas.lt Dinas Šukuosena Dino dešros Abraitis dinas@gmail.com Www.abraitis.lt Dinas Šukuosena ";
$masyvas = explode(" ", $file);
$x = count($masyvas);
print_r($masyvas);
$rikiavimas = array (
'pavadinimas' => '',
'o_pavadinimas' => '',
'email' => '',
'svetaines_adresas' => '',
'vardas' => '',
'pavarde' => ''
);
$c=0;
while($c < $x-4){
$rikiavimas['pavadinimas'][] = $masyvas[$c+0];
$rikiavimas['o_pavadinimas'][] = $masyvas[$c+1];
$rikiavimas['email'][] = $masyvas[$c+2];
$rikiavimas['svetaines_adresas'][] = $masyvas[$c+3];
$rikiavimas['vardas'][] = $masyvas[$c+4];
$rikiavimas['pavarde'][] = $masyvas[$c+5];
$c+=6;
}
array_multisort($rikiavimas['pavadinimas'], SORT_ASC, SORT_REGULAR, $rikiavimas['o_pavadinimas']);
$pirmas=count($rikiavimas['pavadinimas']);
print_r($rikiavimas);
?>
<table class="table" align="center" width="800" border="1" cellspacing="0" cellpadding="3">
<tr>
<td align="center"><strong>Produkto pavadinimas</strong></td>
<td align="center"><strong>Organizacijos pavadinimas</strong></td>
<td align="center"><strong>El. paštas</strong></td>
<td align="center"><strong>Svetainės adresas</strong></td>
<td align="center"><strong>Vardas</strong></td>
<td align="center"><strong>Pavardė</strong></td>
</tr>
<?php
$y=0;
while($y < $pirmas){
echo "<td>" . $rikiavimas['pavadinimas'][$y] . "</td>";
echo "<td>" . $rikiavimas['o_pavadinimas'][$y] . "</td>";
echo "<td>" . $rikiavimas['email'][$y] . "</td>";
echo "<td>" . $rikiavimas['svetaines_adresas'][$y] . "</td>";
echo "<td>" . $rikiavimas['vardas'][$y] . "</td>";
echo "<td>" . $rikiavimas['pavarde'][$y] . "</td>";
echo "</tr>";
$y++;
}
?>
<?php
?>
</table>
编辑:忽略print_r
,它只是用于测试
该问题与array_multissort的错误使用有关。目前,您只对$rikiavimas['pavadinimas']和$rikiavimas['o_pavadinias']数组进行排序。
阵列:
- $rikiavimas['email']
- $rikiavimas['svetaines_adresas']
- $rikiavimas["vardas"]
- $rikiavimas
未修改。array_multisort对这4个数组一无所知。
我对你的代码做了一点修改=>我已经将$rikiavimas[name][index]切换为$rikiavimas[index][name]。
<?php
$file = "Muniko dešros Abraitis Vilius.munikas@gmail.com Www.abraitis.lt Vilius Munikas Muniko dešros Belenkas Vilius.munikas@gmail.com Www.belenkas.lt Vilius Munikas Tomo dešros Abraitis tomas@gmail.com Www.abraitis.lt Tomas Vilemaitis Tomo dešros Belenkas tomas@gmail.com Www.belenkas.lt Tomas Vilemaitis Dino dešros Dešrynas dinas@gmail.com Www.derynas.lt Dinas Šukuosena Dino dešros Abraitis dinas@gmail.com Www.abraitis.lt Dinas Šukuosena ";
$masyvas = explode(" ", $file);
$columns = 6;
$rikiavimas = array();
$masyvas = array_chunk($masyvas, $columns);
foreach ($masyvas as $value) {
if (count($value) < $columns) continue;
list($tmp['pavadinimas'],
$tmp['o_pavadinimas'],
$tmp['email'],
$tmp['svetaines_adresas'],
$tmp['vardas'],
$tmp['pavarde']
) = $value;
$rikiavimas[] = $tmp;
}
$sort = array();
foreach($rikiavimas as $v) {
$sort['pavadinimas'][] = $v['pavadinimas'];
$sort['o_pavadinimas'][] = $v['o_pavadinimas'];
}
array_multisort($sort['pavadinimas'], SORT_ASC, SORT_REGULAR, $sort['o_pavadinimas'], SORT_ASC, SORT_REGULAR, $rikiavimas);
?>
<table class="table" align="center" width="800" border="1" cellspacing="0" cellpadding="3">
<tr>
<td align="center"><strong>Produkto pavadinimas</strong></td>
<td align="center"><strong>Organizacijos pavadinimas</strong></td>
<td align="center"><strong>El. paštas</strong></td>
<td align="center"><strong>Svetainės adresas</strong></td>
<td align="center"><strong>Vardas</strong></td>
<td align="center"><strong>Pavardė</strong></td>
</tr>
<?php
foreach ($rikiavimas as $row) {
echo "<td>" . $row['pavadinimas'] . "</td>";
echo "<td>" . $row['o_pavadinimas'] . "</td>";
echo "<td>" . $row['email'] . "</td>";
echo "<td>" . $row['svetaines_adresas'] . "</td>";
echo "<td>" . $row['vardas'] . "</td>";
echo "<td>" . $row['pavarde'] . "</td>";
echo "</tr>";
}
?>
</table>