私は次のスクリプトを持っています。これは、配列からの結果をページ分割します...ただし、数値キー値を使用する場合のみです。このスクリプトを変更して、キーに文字列値を使用する連想配列を操作することはできますか? 配列をアルファベット順にソートし、最終的にはアルファベット順にページネーションを行う必要があります。
ここまでのスクリプト。
$my_array = array(0 => 'a', 1 => 'b', 2 => 'c'); // THIS WORKS FINE
//$my_array = array('a' => 'a', 'b' =>'b', 'c'=>'c'); // THIS DOESN'T WORK
$arr = $my_array;
$rows_per_page = 1;
$numrows = count($arr);
// Calculate number of $lastpage
$lastpage = ceil($numrows/$rows_per_page);
// condition inputs/set default
if (isset($_GET['pageno'])) {
$pageno = $_GET['pageno'];
} else {
$pageno = 1;
}
// validate/limit requested $pageno
$pageno = (int)$pageno;
if ($pageno > $lastpage) {
$pageno = $lastpage;
}
if ($pageno < 1) {
$pageno = 1;
}
// Find start and end array index that corresponds to the requested pageno
$start = ($pageno - 1) * $rows_per_page;
$end = $start + $rows_per_page -1;
// limit $end to highest array index
if($end > $numrows - 1){
$end = $numrows - 1;
}
// display array from $start to $end
for($i = $start;$i <= $end;$i++){
echo $arr[$i] . '<br />';
}
echo "<p style='text-align:center;'>";
// first/prev pagination hyperlinks
if ($pageno == 1) {
echo " FIRST PREV ";
} else {
echo " <a href='?pageno=1'>FIRST</a> ";
$prevpage = $pageno-1;
echo " <a href='?pageno=$prevpage'>PREV</a> ";
}
// Display current page or pages
echo " ( Page $pageno of $lastpage ) ";
// next/last pagination hyperlinks
if ($pageno == $lastpage) {
echo " NEXT LAST ";
} else {
$nextpage = $pageno+1;
echo " <a href='?pageno=$nextpage'>NEXT</a> ";
echo " <a href='?pageno=$lastpage'>LAST</a> ";
}
echo "</p>";
?>