一、php數組合並兩個數組(一個數組做鍵名,另一個做值)
有兩個方法
1、循環
$arry_a = array(0, 1, 2); $arry_b = array('dongsir','董先生','董先生的CSDN博客'); $arry_ab = []; foreach ($arry_b as $key => $value) { $arry_ab[$arry_a[$key]] = $value; } echo "<pre>"; print_r($arry_ab);
2、array_combine函數
public function test() {
$arry_a = array(0, 1, 2);
$arry_b = array('dongsir','董先生','董先生的CSDN博客');
$arry_ab = array_combine($arry_a ,$arry_b );
print_r($arry_ab);
}
二、php利用array_search與array_column實現二維數組查找
<?php $userdb = array( 0 => array( 'uid' => 100, 'name' => 'Sandra Shush', 'url' => 'urlof100' ), 1 => array( 'uid' => 5465, 'name' => 'Stefanie Mcmohn', 'pic_square' => 'urlof100' ), 2 => Array( 'uid' => 40489, 'name' => 'Michael', 'pic_square' => 'urlof40489' ) ); $found_key = array_search(40489, array_column($userdb, 'uid')); /** 如果$userdb很大,建議使用一個變量,避免搜索每個元素時都調用array_column() $uid = array_column($userdb, 'uid'); $found_key = array_search(40489, $uid); */ var_dump($found_key);//返回查詢到的值的key--2 ?>
三、PHP二維數組搜索返回數組
1 $ar = array( 2 2 => array( 3 'catid' => 2, 4 'catdir' => 'notice', 5 ), 6 5 => array( 7 'catid' => 5, 8 'catdir' => 'subject', 9 ), 10 6=> array( 11 'catid' => 6, 12 'catdir' => 'news' 13 ), 14 ); 15 16 $catid = 5; 17 $r = array_filter($ar, function($t) use ($catid) { return $t['catid'] == $catid; }); 18 print_r($r);
返回
1 Array 2 ( 3 [5] => Array 4 ( 5 [catid] => 5 6 [catdir] => subject 7 ) 8 9 )
四、數組實現分頁功能
array_slice() -從數組中取出一段
也就是說用這個函數可以和sql語句一樣實現分頁,原理是將查詢出的數組,取出從指定下標開始到指定長度的數組
我們的數據未必都是存儲在數據庫中,很多時候是用數組來組織的。所以獲取數組數據,進行分頁是比較常見的編程要求
array_slice(原數組,開始下標,要取幾條),這里用到三個參數(如果不寫第三個參數 返回直到數組末端的所有元素)
$count = count($article);//總條數 $start=($page-1)*$pagesize;//偏移量,當前頁-1乘以每頁顯示條數 $article = array_slice($article,$start,$pagesize);