① php 數組拆分
$arr=array(
array(
"name"=>"蘋果",
"path"=>"食物-水果"
),
array(
"name"=>"大白菜",
"path"=>"食物-蔬菜"
),
array(
"name"=>"大白菜1",
"path"=>"食物-蔬菜"
),
array(
"name"=>"大白菜2",
"path"=>"食物-蔬菜"
),
array(
"name"=>"大眾牌子xxx",
"path"=>"汽車-大眾"
),
);
$result=array();
foreach($arras$v){
$path=explode("-",$v['path']);
if(!is_array($result[$path[0]])){
$result[$path[0]]=array();
}
if(!is_array($result[$path[0]][$path[1]])){
$result[$path[0]][$path[1]]=array();
}
array_push($result[$path[0]][$path[1]],$v['name']);
}
var_mp($result);
② PHP數組分割
$a = "12@84@940@33@77";
$elements = explode("@", $a);
print_r($elements);
關於explode
格式:
array explode ( string separator, string string [, int limit] )
此函數返回由字元串組成的數組,每個元素都是 string 的一個子串,它們被字元串 separator 作為邊界點分割出來。如果設置了 limit 參數,則返回的數組包含最多 limit 個元素,而最後那個元素將包含 string 的剩餘部分。
如果 separator 為空字元串(""),explode() 將返回 FALSE。如果 separator 所包含的值在 string 中找不到,那麼 explode() 將返回包含 string 單個元素的數組。
如果 limit 參數是負數,則返回除了最後的 limit 個元素外的所有元素。此特性是 PHP 5.1.0 中新增的。
由於歷史原因,雖然 implode() 可以接收兩種參數順序,但是 explode() 不行。你必須保證 separator 參數在 string 參數之前才行。
③ php 這種格式數組怎麼拆分
示常式序代碼:
代碼文本:
<?php
$arr=array("11111|2222|3333","hello","cat","444|555|666");
print_r($arr);//原始
$arr2=[];
$k0=explode('|',$arr[0]);
$k3=explode('|',$arr[3]);
for($i=0;$i<count($k0);$i++) $arr2[]=array($k0[$i], $arr[1], $arr[2], $k3[$i]);
print_r($arr2);//結果
?>
④ php 數組分割成多個數組
1.系統函數:
array_chunk() 把一個數組分割為新的數組塊
array_slice() 返回數組中被選定的部分等,更多的參考w3school
http://www.w3school.com.cn/php/php_ref_array.asp,程序員要學會用手冊
2.自定義函數:
當系統函數不能滿足實際需求時,根據實際的需求,自己重新定義函數
function(){}
3、 計算參數的數組:
參數1是傳入數組,參數2是每個分數組元素數量//調用方法返回的是二維數組,可以用數組下標取出你需要的一維數組。
function arr_oper ( $arr, $num ) {
$count = count ( $arr );
for ( $i = 0; $i < $count / $num; $i ++ ) {$return_arr[$i] = array_slice ( $arr, $num * $i, $num }
4、利用:$sliceArr = arr_oper( $arr, 1000 );的公式:
$sliceArr[0],$sliceArr[1]......
這個根據你的要求弄就行,因為方法只能返回一個數組,所以我把拆分之後的幾個子數組合成了一個數組一起return了。
這個方法會比較靈活,比如我把3000個元素的數組,500個一個拆分,就會返回一個有6個子數組的數組。
⑤ php 分割數組數據
str_split函數能實現你這樣的功能,把字元串按長度分割為數組,例如:
<?php
$str="HelloFriend";
$arr1=str_split($str);
$arr2=str_split($str,3);
print_r($arr1);
print_r($arr2);
?>
代碼輸出的結果如下:
Array
(
[0]=>H
[1]=>e
[2]=>l
[3]=>l
[4]=>o
[5]=>
[6]=>F
[7]=>r
[8]=>i
[9]=>e
[10]=>n
[11]=>d
)
Array
(
[0]=>Hel
[1]=>lo
[2]=>Fri
[3]=>end
)