2012-10-14 27 views
1
<?php 
$arr = array("value1", "value2", "value3"); 
$array_with_keys = array_keys($arr); 
echo "<pre>"; 
print_r($array_with_keys); 
echo "</pre>"; 
?> 

這是array_keys()具有在其參數非締合陣列的例子。所以沒有鑰匙。array_keys()與正常陣列中的參數

輸出是:

Array 
(
    [0] => 0 
    [1] => 1 
    [2] => 2 
) 

爲什麼是這個輸出?我搜索了手冊,並找不到在其參數中使用普通數組的array_keys()的示例。

因此可以將部分解釋爲什麼輸出是這樣嗎?

常識告訴我,這是因爲在正常陣列的關鍵是它的指數,這是012

+1

「正常」的數組鍵從0開始,而不是在1 ....並且這在PHP文檔 –

+0

廣泛記載我編輯它0,1,2 .....爲什麼它變回1,2- ,3 – user1745031

+0

還有什麼辦法? PHP中的數組基於零。什麼是「正常」數組? – PeeHaa

回答

1

所有的數組實際上是在PHP關聯數組。 即使你不聲明它們:

$arr = array("value1", "value2", "value3"); 

這是一樣的

$arr = array(0 => "value1", 1 => "value2", 2 => "value3"); 

所以PHP自動添加鍵爲您服務。

+0

@PeeHaa我寫了令人困惑和無意義的東西('$ arr == array_keys(array_flip($ arr))')。你是對的;)編輯回答。 – ComFreek

1

你的常識是正確的。當你創建一個沒有鍵的數組時,它被數字化索引。當您在此陣列上做一個array_keys,越來越提取的數字鍵。