在php中,二維陣列可以看做一個陣列中嵌套了另一個陣列。其中,外層數組的key可以是任何類型的數據,而value則是數組。而內層數組的key同樣可以是任何類型的數據,而value則可以是任何類型的數據。在實際開發中,二維數組在許多場合下被廣泛使用。有時候需要拿到二維數組中的值,這時候就需要用到相關函數。
一、訪問二維數組的值
訪問二維數組的值需要依次指定下標,即透過指定外層數組的key和內層數組的key來訪問二維數組中的值。以下是範例:
$arr = array( "first" => array( "name" => "Tom", "age" => 18, "gender" => "male" ), "second" => array( "name" => "Jerry", "age" => 19, "gender" => "female" ) ); echo $arr["first"]["name"];
在上述範例中,我們定義了一個二維陣列$arr,其中有兩個元素,分別是「first」和「second」。每一個元素都是一個數組,包含了不同的鍵值對。我們透過指定下標來存取「first」這個元素中「name」這個鍵所對應的值。結果應該是“Tom”。
二、遍歷二維陣列
遍歷二維陣列需要使用循環語句。由於二維數組嵌套了另一個數組,因此我們需要使用兩個循環語句,分別用於遍歷外層數組和內層數組。下面是一個範例:
$arr = array( "first" => array( "name" => "Tom", "age" => 18, "gender" => "male" ), "second" => array( "name" => "Jerry", "age" => 19, "gender" => "female" ) ); foreach ($arr as $key1 => $value1){ echo $key1 . '<br>'; foreach ($value1 as $key2 => $value2){ echo $key2 . ': ' . $value2 . '<br>'; } echo '<br>'; }
在上述範例中,我們使用兩個foreach迴圈語句。在外層循環中,$key1指涉的是外層數組中元素的key,而$value1則指代的是外層數組中元素的value(也就是內層數組)。在內層迴圈中,$key2指涉的是內層數組中元素的key,而$value2則指涉的是內層數組中元素的value。最後結果輸出如下:
first name: Tom age: 18 gender: male second name: Jerry age: 19 gender: female
三、透過關鍵字找出二維數組的值
在實際的開發中,有時候我們需要對二維數組進行查詢操作。我們可以透過一些內建函數來實現對數組的操作。在這裡,我們將透過array_column()函數來實現對二維數組的操作。
array_column(array $input, mixed $column_key [, mixed $index_key = null])
這個函數的作用是將一個二維陣列依照指定的key取出來,傳回一個一維數組。其中,$input參數為需要處理的二維數組,$column_key參數為需要取出的key,$index_key參數為需要做為新數組的key的key。
下面是一個範例:
$arr = array( array("name"=>"Tom", "age"=>18, "gender"=>"male"), array("name"=>"Jerry", "age"=>19, "gender"=>"female"), array("name"=>"Lucy", "age"=>17, "gender"=>"female") ); $names = array_column($arr, 'name'); $genders = array_column($arr, 'gender'); print_r($names); print_r($genders);
在上述範例中,我們定義了一個二維陣列$arr,其中每個元素都包含了「name」、「age」和「gender 」三個key。我們使用array_column()函數來分別取出所有「name」和所有「gender」所對應的值。最後輸出結果如下:
Array ( [0] => Tom [1] => Jerry [2] => Lucy ) Array ( [0] => male [1] => female [2] => female )
在開發中,對於二維數組的操作需要根據實際情況進行。掌握這些操作,將有利於我們在開發中的使用。
以上是php二維數組的值怎麼拿的詳細內容。更多資訊請關注PHP中文網其他相關文章!