2012-08-27 144 views
3

我想從中得到數組中的值分爲兩個變量:獲取從數組變量是在PHP

  • $標題
  • $網址

對於這些內部陣列。我該怎麼做?

Array 
(
[0] => Array 
    (
     [0] => Reuters 
     [1] => http://www.reuters.com 
    ) 

[1] => Array 
    (
     [0] => CNN 
     [1] => http://www.cnn.com 
    ) 
) 
+1

你應該閱讀一些關於[PHP和數組(http://php.net/manual/en/language.types.array.php)。 – sp00m

回答

1

這將使你與你的標題和URL兩個數組:

foreach ($array as $value) 
{ 
    $title[] = $value[0]; 
    $url[] = $value[1]; 
} 

或者,如果你想獲得你的值到變量:

$title1 = $array[0][0]; 
$title2 = $array[1][0]; 

$url1 = $array[1][0]; 
$url2 = $array[1][1]; 
0
foearch ($yourArrayName as $innerArray){ 
$title=$innerArray[0]; 
$url=$innerArray[1]; 
echo $title.'-'.$url; 
} 

以這種方式,首先遍歷外數組元素,然後,你可以得到每一個你感興趣的值。

如果你想存儲的所有元素,你必須創建一個新的陣列,但是,在這一點上,爲什麼不「簡單」保持原始一個?

0

拷貝代碼:

$title = array(); 
$url = array(); 

foreach ($array as $value) 
{ 
    $title[] = $value[0]; 
    $url[] = $value[1]; 
} 

print_r($title); 
print_r($url); 
1

儘管阿納斯的回答應該工作,我看不到分離的數據點,因爲他們顯然屬於一個整體(名稱&網址就像馬和馬車,愛情和婚姻...)

$input = array(array('CNN','http://www.cnn.com'),array('rubbish','http://www.fox.com')); 
$grouped = array(); 
while($pair = array_shift($input)) 
{ 
    $grouped[$pair[0]] = $pair[1]; 
} 
echo $grouped['rubbish'];//echoes http://www.fox.com 

這種方法的好處?

  1. 原始是多餘的處理後,通過移動,你釋放內存(數組正在分解)。所以它更有效率。
  2. 你的數據的完整性有所更有保證IMO(名稱和網站停留配對)。
  3. ,如果你願意,你仍然可以得到所有的名字和所有的URL作爲獨立的數字索引數組:

$title = array_keys($grouped); 
$urls = array_values($grouped); 
0
<?php 
    $titles=array(); 
    $urls=array(); 
    foreach($array as $key=>$value) 
    { 
     $titles[]=$value[$key][0]; 
     $urls[]=$value[$key][1]; 
    } 
?> 

使用此代碼,你可以用做兩個不同的單維數組數據持有n個陣列結構化數據。