欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP中數(shù)組定義的幾種方法

 更新時(shí)間:2013年09月01日 15:37:07   投稿:shangke  
這篇文章介紹了PHP中數(shù)組定義的幾種方法,有需要的朋友可以參考需要

Array 數(shù)組

PHP 中的數(shù)組實(shí)際上是一個(gè)有序映射。映射是一種把 values 關(guān)聯(lián)到 keys 的類型。此類型在很多方面做了優(yōu)化,因此可以把它當(dāng)成真正的數(shù)組,或列表(向量),散列表(是映射的一種實(shí)現(xiàn)),字典,集合,棧,隊(duì)列以及更多可能性。由于數(shù)組元素的值也可以是另一個(gè)數(shù)組,樹形結(jié)構(gòu)和多維數(shù)組也是允許的。

PHP定義數(shù)組的常用方法

echo "
";
//定義數(shù)組的多種方法
//方法一
$array=array('orange','apple','banana');
var_dump($array);//打印數(shù)組array
//方法二
$array[]='orange';
$array[]='apple';
var_dump($array);//打印數(shù)組array
//方法三
$array=[];//這種不常見,但我覺得很簡(jiǎn)潔,類似于$array=array();
var_dump($array);//打印數(shù)組array
//定義索引數(shù)組
//方法四
$array=array(
'orange'=>12,
'apple' =>18,
);
var_dump($array);//打印數(shù)組array
//方法五
$array['apple']=18;
var_dump($array);//打印數(shù)組array

一般來(lái)說(shuō)定義方法如下面幾種:

方法一:

$a=array(1,2,4,5,6);
<?php 
$array=array('a','b','c'); 
$array[]='simon'; 
print_r($array); 
?>

運(yùn)行結(jié)果如下所示。 
Array 

  [0]=>a 
  [1]=>b 
  [2]=>c 
  [3]=>simon 

方法二:

$a=array(key1=>value1,key2=>value2,key3=>value3);

方法三:

$a[key1]=value1;
$a[key2]=value2;

方法四:通過中括號(hào)[]定義數(shù)組

php 5.4版以后可以這么寫,新增的數(shù)組簡(jiǎn)寫語(yǔ)法。

php 5.3版及以前的版本不接受這么寫...

$data = [
'start_time' => '123',
'end_time' =>'456'
];

解釋這些結(jié)構(gòu)超出了本手冊(cè)的范圍,但對(duì)于每種結(jié)構(gòu)至少會(huì)提供一個(gè)例子。要得到這些結(jié)構(gòu)的更多信息,建議參考有關(guān)此廣闊主題的其它著作。

語(yǔ)法

定義數(shù)組 array()

可以用 array() 語(yǔ)言結(jié)構(gòu)來(lái)新建一個(gè)數(shù)組。它接受任意數(shù)量用逗號(hào)分隔的 鍵(key) => 值(value)對(duì)。

array(  key =>  value
     , ...
     )
// 鍵(key)可是是一個(gè)整數(shù) integer 或字符串 string
// 值(value)可以是任意類型的值
最后一個(gè)數(shù)組單元之后的逗號(hào)可以省略。通常用于單行數(shù)組定義中,例如常用 array(1, 2) 而不是 array(1, 2, )。對(duì)多行數(shù)組定義通常保留最后一個(gè)逗號(hào),這樣要添加一個(gè)新單元時(shí)更方便。

自 5.4 起可以使用短數(shù)組定義語(yǔ)法,用 [] 替代 array()。

Example #1 一個(gè)簡(jiǎn)單數(shù)組

<?php
$array = array(
 "foo" => "bar",
 "bar" => "foo",
);

// 自 PHP 5.4 起
$array = [
 "foo" => "bar",
 "bar" => "foo",
];
?>

key 可以是 integer 或者 string。value 可以是任意類型。

此外 key 會(huì)有如下的強(qiáng)制轉(zhuǎn)換:

包含有合法整型值的字符串會(huì)被轉(zhuǎn)換為整型。例如鍵名 "8" 實(shí)際會(huì)被儲(chǔ)存為 8。但是 "08" 則不會(huì)強(qiáng)制轉(zhuǎn)換,因?yàn)槠洳皇且粋€(gè)合法的十進(jìn)制數(shù)值。
浮點(diǎn)數(shù)也會(huì)被轉(zhuǎn)換為整型,意味著其小數(shù)部分會(huì)被舍去。例如鍵名 8.7 實(shí)際會(huì)被儲(chǔ)存為 8。
布爾值也會(huì)被轉(zhuǎn)換成整型。即鍵名 true 實(shí)際會(huì)被儲(chǔ)存為 1 而鍵名 false 會(huì)被儲(chǔ)存為 0。
Null 會(huì)被轉(zhuǎn)換為空字符串,即鍵名 null 實(shí)際會(huì)被儲(chǔ)存為 ""。
數(shù)組和對(duì)象不能被用為鍵名。堅(jiān)持這么做會(huì)導(dǎo)致警告:Illegal offset type。
如果在數(shù)組定義中多個(gè)單元都使用了同一個(gè)鍵名,則只使用了最后一個(gè),之前的都被覆蓋了。

Example #2 類型強(qiáng)制與覆蓋示例

<?php
$array = array(
 1 => "a",
 "1" => "b",
 1.5 => "c",
 true => "d",
);
var_dump($array);
?>

以上例程會(huì)輸出:

array(1) {
  [1]=>
  string(1) "d"
}
上例中所有的鍵名都被強(qiáng)制轉(zhuǎn)換為 1,則每一個(gè)新單元都會(huì)覆蓋前一個(gè)的值,最后剩下的只有一個(gè) "d"。

PHP 數(shù)組可以同時(shí)含有 integer 和 string 類型的鍵名,因?yàn)?PHP 實(shí)際并不區(qū)分索引數(shù)組和關(guān)聯(lián)數(shù)組。

如果對(duì)給出的值沒有指定鍵名,則取當(dāng)前最大的整數(shù)索引值,而新的鍵名將是該值加一。如果指定的鍵名已經(jīng)有了值,則該值會(huì)被覆蓋。

Example #3 混合 integer 和 string 鍵名

<?php
$array = array(
 "foo" => "bar",
 "bar" => "foo",
 100 => -100,
 -100 => 100,
);
var_dump($array);
?>

以上例程會(huì)輸出:

array(4) {
  ["foo"]=>
  string(3) "bar"
  ["bar"]=>
  string(3) "foo"
  [100]=>
  int(-100)
  [-100]=>
  int(100)
}
key 為可選項(xiàng)。如果未指定,PHP 將自動(dòng)使用之前用過的最大 integer 鍵名加上 1 作為新的鍵名。

Example #4 沒有鍵名的索引數(shù)組

<?php
$array = array("foo", "bar", "hallo", "world");
var_dump($array);
?>

以上例程會(huì)輸出:

array(4) {
  [0]=>
  string(3) "foo"
  [1]=>
  string(3) "bar"
  [2]=>
  string(5) "hallo"
  [3]=>
  string(5) "world"
}
還可以只對(duì)某些單元指定鍵名而對(duì)其它的空置:

Example #5 僅對(duì)部分單元指定鍵名

<?php
$array = array(
   "a",
   "b",
 6 => "c",
   "d",
);
var_dump($array);
?>

以上例程會(huì)輸出:

array(4) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [6]=>
  string(1) "c"
  [7]=>
  string(1) "d"
}
可以看到最后一個(gè)值 "d" 被自動(dòng)賦予了鍵名 7。這是由于之前最大的整數(shù)鍵名是 6。

用方括號(hào)語(yǔ)法訪問數(shù)組單元 ¶

數(shù)組單元可以通過 array[key] 語(yǔ)法來(lái)訪問。

Example #6 訪問數(shù)組單元

<?php
$array = array(
 "foo" => "bar",
 42 => 24,
 "multi" => array(
   "dimensional" => array(
    "array" => "foo"
   )
 )
);

var_dump($array["foo"]);
var_dump($array[42]);
var_dump($array["multi"]["dimensional"]["array"]);
?>

以上例程會(huì)輸出:

string(3) "bar"
int(24)
string(3) "foo"
Note:
方括號(hào)和花括號(hào)可以互換使用來(lái)訪問數(shù)組單元(例如 $array[42] 和 $array{42} 在上例中效果相同)。
自 PHP 5.4 起可以用數(shù)組間接引用函數(shù)或方法調(diào)用的結(jié)果。之前只能通過一個(gè)臨時(shí)變量。

自 PHP 5.5 起可以用數(shù)組間接引用一個(gè)數(shù)組原型。

Example #7 數(shù)組間接引用

<?php
function getArray() {
 return array(1, 2, 3);
}

// on PHP 5.4
$secondElement = getArray()[1];

// previously
$tmp = getArray();
$secondElement = $tmp[1];

// or
list(, $secondElement) = getArray();
?>

Note:
試圖訪問一個(gè)未定義的數(shù)組鍵名與訪問任何未定義變量一樣:會(huì)導(dǎo)致 E_NOTICE 級(jí)別錯(cuò)誤信息,其結(jié)果為 NULL。

更多內(nèi)容可以參考這篇文章:http://www.php.net/manual/zh/language.types.array.php

相關(guān)文章

最新評(píng)論