2012-06-27 30 views
6

Tôi có một mảng kết hợp mà khi var đổ trông như sau:PHP: Cách lấy giá trị của mảng bằng số bù của nó nếu đó là mảng kết hợp?

Array 
(
    [tumblr] => Array 
     (
      [type] => tumblr 
      [url] => http://tumblr.com/ 
     ) 

    [twitter] => Array 
     (
      [type] => twitter 
      [url] => https://twitter.com/ 
     ) 

) 

Như bạn có thể nhìn thấy của chính là "tumblr" và "twitter" chứ không phải số 0 và 1.

Một số lần tùy chỉnh Tôi cần lấy các giá trị bằng các khóa tùy chỉnh và đôi khi tôi cần nhận các giá trị bằng các phím số.

Có anyy cách tôi có thể nhận được $myarray[0] để đầu ra:

(
    [type] => tumblr 
    [url] => http://tumblr.com/ 
) 
+0

Phím số và chuỗi không thể hoán đổi cho nhau trong PHP. Bạn có thể mô tả thêm những gì bạn cần không? –

+0

Tất cả các mảng trong PHP là kết hợp, thậm chí cả các mảng được lập chỉ mục số. Điều này có nghĩa là nếu bạn chỉ định chuỗi làm chỉ mục, thì không có giá trị số được liên kết. @nickb có một cách hay để giải quyết vấn đề này bên dưới. –

+0

@Michael thậm chí không hỏi, làm việc với mã của người khác và không cảm thấy như viết lại toàn bộ điều. – TK123

Trả lời

9

Bạn có thể chạy các mảng thông qua array_values():

$myarray = array_values($myarray); 

Bây giờ mảng của bạn trông giống như:

array(2) { 
    [0]=> 
    array(2) { 
    ["type"]=> 
    string(6) "tumblr" 
    ["url"]=> 
    string(18) "http://tumblr.com/" 
    } ... 

Điều này là do array_values() sẽ chỉ lấy các giá trị f rom mảng và đặt lại/sắp xếp lại/rekey mảng như là một mảng số.

+1

'$ myarray + = array_values ​​($ myarray);' sẽ tạo ra một mảng có thể sử dụng cả hai chỉ mục và số chỉ mục, giống như cách mysql_fetch_array hoạt động :) –

+1

+1 để thêm chi tiết –

Các vấn đề liên quan