php獲取數組索引
① php 數組索引值如何重新從0開始遞增
對於索引數組,php還有提供了另外一個內置函數,能夠重置數組索引array_merge($arr),當array_merge()只傳入一個參數且鍵名是整數,返回該數組,其鍵名以0開始進行重新索引。
其中PHP中的數組實際上是一個有序映射。映射是一種把values關聯到keys的類型。換言之,數組是特殊的變數,可以同時保存一個以上的值。
在PHP中數組類型有三種:索引數組(帶有數字索引的數組),關聯數組(帶有指定鍵的數組),多維數組(包含一個或多個數組的數組)。
(1)php獲取數組索引擴展閱讀:
注意事項:
1、兩個相同的索引數組,同時執行,後面的會把前面的覆蓋掉。
2、在php中 索引數組的下標可以不連續。
3、如果兩個下標是空會自動增加。
4、數組的自動增長下標,默認是從0開始的,自動增長的都是出現過的最大值加1。
5、關聯數組不會影響到索引數組的排序規則,就算是索引數組是負數 也不會影響,最大值+1。
② php數組的基本語法 : PHP 數組
數組
php 中的數組實際上是一個有序圖。圖是一種把 values 映射到 keys 的類型。此類型在很多方面做了優化,因此可以把它當成真正的數組來使用,或列表(矢量),散列表(是圖的一種實現),字典,集合,棧,隊列以及更多可能性。因為可以用另一個 php 數組作為值,也可以很容易地模擬樹。
解釋這些結構超出了本手冊的范圍,但對於每種結構至少會發現一個例子。要得到這些結構的更多信息,建議參考有關此廣闊主題的外部著作。
③ php二維數組處理,並重置索引。。
直接用 array_flip 或者 array_unique 是不行的,你這沒有鍵名,必須要自己寫函數
<?php
functionunique_arr($array2D,$stkeep=false,$ndformat=true)
{
//判斷是否保留一級數組鍵(一級數組鍵可以為非數字)
if($stkeep)$stArr=array_keys($array2D);
//判斷是否保留二級數組鍵(所有二級數組鍵必須相同)
if($ndformat)$ndArr=array_keys(end($array2D));
//降維,也可以用implode,將一維數組轉換為用逗號連接的字元串
foreach($array2Das$v){
$v=join(",",$v);
$temp[]=$v;
}
//去掉重復的字元串,也就是重復的一維數組
$temp=array_unique($temp);
//再將拆開的數組重新組裝
foreach($tempas$k=>$v)
{
if($stkeep)$k=$stArr[$k];
if($ndformat)
{
$tempArr=explode(",",$v);
foreach($tempArras$ndkey=>$ndval)$output[$k][$ndArr[$ndkey]]=$ndval;
}
else$output[$k]=explode(",",$v);
}
return$output;
}
$arr=array(
0=>array
(
0=>1,
1=>2
),
1=>array
(
0=>1,
1=>2
),
2=>array
(
0=>2,
1=>3
),
3=>array
(
0=>2,
1=>3
),
4=>array
(
0=>3,
1=>4
),
5=>array
(
0=>3,
1=>4
),
);
var_mp(array_values(unique_arr($arr)));
去重函數可參考: http://www.cnblogs.com/hakuci/archive/2012/05/09/2492659.html
.
④ php數組、鍵名、索引、鍵值有什麼區別
數悄宴組的根據類型來分,分為關聯數組和數字索引數組。
⑤ php 怎麼把索引數組賦值給關聯數組
在PHP中可以用關聯數組的形式表示如下:
$grade=array(name=>li kui,age=>163);
只要指出一點的就是=>,這個運算符非常的形象,一看就能夠明白:鍵為name的值是li kui;鍵為age的值是163。當然你也可以用以下的形式來創建關聯數組:
$grade["name"]=li kui;
$grade["age"]=16;
PHP中的多維數組
在多維數組中,主數組中的每個元素也是一個數組。在子數組中的每個元素也可以是數組,以此類推。同樣我們以學校里的班級為例來說明如何定義多維數組。
所謂多維數組,無非就是在「一維數組」中再加入一個數組,這就是嵌套吧。在學校里我們知道,一個年級可能有多個班級,如一班、二班、三班等,用多維數組表示如下:
$school=array(1=>array(name=>li kui,age=>163),
2=>array(name=>wu song,age=>183)
&&
);
如果你要訪問wu song,按如下的形式訪問即可:
print $school[2][name]; //輸出wu song
⑥ PHP 帶索引的數組寫成switch case條件應該怎麼寫
你好,switch要傳入的是一個變數,那麼數組中的 一個代指定索引的數組值 就是一個變數。或者,如果還是不明白。直接$val = $value[first], 然後switch($val)。就可以了。如果你想把一個數組都通過switch判斷,那要在數組遍歷里寫switch就可以了。
比如 foreach($value as $temp_val) {
switch( $temp_val) {
case "xxxxx";break;
}
}
就樣就可以了。
⑦ php如何將對象轉為索引數組
將PHP對象轉換為索引數組,通常涉及兩步操作。首先,需要將對象數組化,然後應用array_values函數實現轉換。以下為具體步驟:
步驟一:對象數組化。假設你已有一個對象數組,如下:
php
$objects = [
(object)['id' => 1, 'name' => 'A'],
(object)['id' => 2, 'name' => 'B'],
(object)['id' => 3, 'name' => 'C'],
];
步驟二:使用array_values函數轉換。轉換過程如下:
php
$array = array_values($objects);
最終得到的$array數組為:
php
$array = [
['id' => 1, 'name' => 'A'],
['id' => 2, 'name' => 'B'],
['id' => 3, 'name' => 'C'],
];
以上代碼演示了如何將對象數組轉換為索引數組。確保在處理對象數組時,數組中的對象擁有相同的屬性,以確保轉換後的索引數組結構正確。在實際應用中,確保你的對象屬性滿足轉換需求。希望對你有幫助,歡迎點贊支持。
⑧ php中遍歷數組方法
遍歷數組有多種實現方法:
1、連續索引的數組:
實現連派碼續數組的遍歷很簡單,因為數組的索引是連續的(0 1 2),所以我們可以首先用count()函數計算出數組中元素的個數拿羨,然後建立一個for循環,如下:
$subject=array("maths","english","physics");
$num_elements=count($subject); //這時$num_elements的值為3
for ($i=0;$i$num_elements; ++$i){
echo ("$subject[$i]
");
}
結果為:
maths
english
physics
這里我們給$i賦了初值為0,是因為數組元素的索引默認為0 1 2,如果第一個元素的索引不為0,我們只需:
$subject=array(3="maths","english","physics");
$num_elements=count($subject)+3; //注意這里
for ($i=3;$i$num_elements; ++$i){
echo ("$subject[$i]
");
}
這里將$i賦了值3,同時$num_elements=count($subject)+3,這里很容易被忽視。
2 、非連續索引的數組:
$subject=array("m"="maths","e"="english","p"="physics");
這里建立了一個了數組,索引值分別為"m" "e " "p",這樣的數組怎麼遍歷?
方法一:使用list()和each()函數組合
$subject=array("m"="maths","e"="english","p"="physics");
reset($subject); //把指針復位到第一個消羨拍元素上
while (list($key,$value)=each($subject)){
echo "$key is $value
"; }
方法二:使用foreach語句
$subject=array("m"="maths","e"="english","p"="physics");
foreach($subject as $key = $value){
echo "$key is $value
";
}
?
是不是比list()和each()簡單。
foreach 與 list()each()組合的不同之處:
foreach 是在原來數組的拷貝上執行操作的。他的優點是不會影響當前數組指針的位置,缺點是對於一個很大的數組,復制所花的時間很長。
list() each()組合很明顯用他遍歷、之後,指針的位置改變了。
方法三:使用array_walk()函數遍歷數組
array_walk()是讓使用者自定義函數,處理陣列中的每一個元素。
$subject=array("maths","english","physics");
function printElement($element){
print ("$element
");
}
array_walk($subject,"printElement");