日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > php >内容正文

php

for循环 php 增加数组维数_PHP数组在循环中创建多维数组

發(fā)布時(shí)間:2024/8/5 php 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 for循环 php 增加数组维数_PHP数组在循环中创建多维数组 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我有一個(gè)關(guān)聯(lián)的多維數(shù)組,如下所示

$data = array();

$data = Array (

[0] => Array ( [class] => 1styear [branch] => IT [Exam] => SEM1 [student name] => Alex [Bio] => Good Boy )

[1] => Array ( [class] => 2ndyear [branch] => Finance [Exam] => SEM1 [student name] => Mark [Bio] => Intelligent )

[2] => Array ( [class] => 2ndyear [branch] => IT [Exam] => SEM1 [student name] => Shaun [Bio] => Football Player )

[3] => Array ( [class] => 1styear [branch] => Finance [Exam] => SEM2 [student name] => Mike [Bio] => Sport Player )

[4] => Array ( [class] => 1styear [branch] => IT [Exam] => SEM2 [student name] => Martin [Bio] => Smart )

[5] => Array ( [class] => 1styear [branch] => IT [Exam] => SEM1 [student name] => Philip [Bio] => Programmer )

)

我需要根據(jù)上面數(shù)組中的類似元素創(chuàng)建新數(shù)組.意味著我必須創(chuàng)建陣列組.例如,類元素具有重復(fù)的第1年和第2年的值.所以它會(huì)產(chǎn)生一系列獨(dú)特的元素.然后再次類是父數(shù)組和內(nèi)部類數(shù)組應(yīng)該有基于分支的數(shù)組和內(nèi)部的檢查數(shù)組和里面的數(shù)組應(yīng)該有學(xué)生名和生物的關(guān)聯(lián)數(shù)組.

所以基本上數(shù)組應(yīng)該是這樣的

array(

"1styear" => array(

"IT" => array(

"SEM1" => array(

array(

"student name" => "Alex",

"Bio" => "Good Boy"

),

array(

"student name" => "Philip",

"Bio" => "Programmer"

)

),

"SEM2" => array(

array(

"student name" => "Martin",

"Bio" => "Smart"

)

)

)

),

"2ndyear" => array(

"Finance" => array(

"SEM1" => array(

array(

"student name" => "Mark",

"Bio" => "Intelligent"

)

),

"SEM2" => array(

array(

"student name" => "Mike",

"Bio" => "Sport Player"

)

)

)

)

);

為了使基于類的組我喜歡下面哪個(gè)工作正常,但如何在其中創(chuàng)建數(shù)組

$classgroup = array();

foreach($data as $inarray){

$classgroup[$inarray['class']][] = $inarray;

}

$classarray = array();

foreach($classgroup as $key => $value){

echo $key; // output is 1styear and secondyear

create array like above

}

– – – – – – – – – – – – – – – – -編輯 – – – – – – – – ——————

從下面的循環(huán)

foreach($data as $array){

$grouped[$array["class"]][$array["branch"]][$array["Exam"]][]=array("student name"=>$array["student name"],"Bio"=>$array["Bio"]);

}

我得到了預(yù)期的o / p

但如果我需要另一個(gè)這樣的o / p

預(yù)計(jì)o / p

array(

'1styear' =>

array (

0 =>

array(

'Exam' => 'SEM1',

'branch' =>

array (

0 => 'IT'

),

),

1 =>

array(

'Exam' => 'SEM2',

'branch' =>

array (

0 => 'IT'

),

),

),

'2ndyear' =>

array (

0 =>

array(

'Exam' => 'SEM1',

'branch' =>

array (

0 => 'Finance',

),

),

1 =>

array(

'Exam' => 'SEM2',

'branch' =>

array (

0 => 'Finance'

),

)

),

)

我嘗試了循環(huán)但沒有按預(yù)期獲得o / p

foreach($data as $array){

$grouped[$array["class"]][]=array("Exam"=>$array["Exam"],"branch"=>$array["branch"]);

}

最佳答案 循環(huán)中的單行!

foreach($data as $array){

$grouped[$array["class"]][$array["branch"]][$array["Exam"]][]=array("student name"=>$array["student name"],"Bio"=>$array["Bio"]);

}

$groups產(chǎn)生:

Array(

[1styear] => Array(

[IT] => Array(

[SEM1] => array(

[0] => array(

[student name] => Alex,

[Bio] => Good Boy

),

[1] => array(

[student name] => Philip,

[Bio] => Programmer

)

),

[SEM2] => array(

[0] => array(

[student name] => Martin,

[Bio] => Smart

)

)

),

[Finance] => array(

[SEM2] => array(

[0] => array(

[student name] => Mike,

[Bio] => Sport Player

)

)

)

),

[2ndyear] => array(

[Finance] => array(

[SEM1] => array(

[0] => array(

[student name] => Mark,

[Bio] => Intelligent

)

)

),

[IT] => array(

[SEM1] => array(

[0] => array(

[student name] => Shaun,

[Bio] => Football Player

)

)

)

)

)

你的后續(xù)案例,更有趣/更具挑戰(zhàn)性.我不得不把我不經(jīng)常玩的一些功能搞得粉碎.看一下這個(gè):

$data = array (

array ( "class"=>"1styear","branch"=>"IT","Exam"=>"SEM1","student name"=>"Alex","Bio"=>"Good Boy"),

array ( "class"=>"2ndyear","branch"=>"Finance","Exam"=>"SEM1","student name"=>"Mark","Bio"=>"Intelligent" ),

array ( "class"=>"2ndyear", "branch"=>"IT","Exam"=>"SEM1","student name"=>"Shaun","Bio"=>"Football Player" ),

array ( "class"=>"1styear","branch"=>"Finance","Exam"=>"SEM2","student name"=>"Mike","Bio"=>"Sport Player" ),

array ( "class"=>"1styear","branch"=>"IT","Exam"=>"SEM2","student name"=>"Martin","Bio"=>"Smart"),

array ( "class"=>"1styear","branch"=>"IT","Exam"=>"SEM1","student name"=>"Philip","Bio"=>"Programmer" )

);

$class_keys=array_unique(array_column($data,"class")); // create array of unique class values

$Exam_keys=array_unique(array_column($data,"Exam")); // create array of unique Exam values

foreach($class_keys as $class_key){

$i=0; // "class" subarray index

foreach($Exam_keys as $Exam_key){

$q=array("class"=>$class_key,"Exam"=>$Exam_key); // this array can have 1 or more pairs

// create an array only of rows where $q's key-value pairs exist

$qualifying_array=array_filter(

$data,

function($val)use($q){

if(count(array_intersect_assoc($val,$q))==count($q)){ // total pairs found = total pairs sought

return $val;

}

},

ARRAY_FILTER_USE_BOTH

);

foreach($qualifying_array as $qa){ // push appropriate values into array

$grouped2[$class_key][$i]["Exam"]=$qa["Exam"];

$grouped2[$class_key][$i]["branch"][]=$qa["branch"];

}

if(isset($grouped2[$class_key][$i]["branch"])){ // ensure no duplicate values in "branch" subarray

$grouped2[$class_key][$i]["branch"]=array_unique($grouped2[$class_key][$i]["branch"]);

}

++$i; // increment the index for each "class" subarray

}

}

echo "

";

print_r($grouped2);

echo "

";

輸出與您請(qǐng)求的輸出不同,但我認(rèn)為您只是展示它應(yīng)該是什么樣子.如果這不太對(duì),請(qǐng)告訴我.

array(

[1styear]=>array(

[0]=>array(

[Exam]=>SEM1

[branch]=>array(

[0]=>IT

)

),

[1]=>array(

[Exam]=>SEM2

[branch]=>array(

[0]=>Finance,

[1]=>IT

)

)

),

[2ndyear]=>array(

[0]=>array(

[Exam]=>SEM1

[branch]=>array(

[0]=>Finance,

[1]=>IT

)

)

)

)

總結(jié)

以上是生活随笔為你收集整理的for循环 php 增加数组维数_PHP数组在循环中创建多维数组的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。