2012-11-01 122 views
0

我正在從while循環中生成一個數組,並且我想最終使用這個數組來顯示數據。PHP:檢查數組,看看值是否匹配,顯示這些值

while($row = $database->fetch(PDO::FETCH_ASSOC) 
{ 

    $value_1 = $row['value_1']; 
    $value_2 = $row['value_2']; 

    $data[] = array("value_1"=>$value_1,"value_2"=>$value_2); 

} 

所以$數據[]會顯示使用print_r我得到的是這樣的:

Array 
(
    [0] => Array 
     (
      [value_1] => Hello World 
      [value_2] => venus 
     ) 

    [1] => Array 
     (
      [value_1] => Hello World 
      [value_2] => pluto 
     ) 

    [2] => Array 
     (
      [value_1] => Hello Moon 
      [value_2] => Halloween 
     ) 

) 

我的問題是,我會怎麼做foreach循環或顯示這樣一種方式在那裏,如果我想獲取所有數據,但要合併相同的值?

Ex: 

Hello World to venus pluto 
Hello Moon to Halloween 

我知道那些句子是沒有意義的,但你可以看到世界您好將得到鞏固和我需要添加一個「向」 value_1value_2之間

希望我的問題是可以理解的。

謝謝!

回答

2

嘗試這樣的事情。 (未測試)

$match = array(); 
foreach($data as $d) { 
    if (isset($match[$d['value_1']])) { 
     $match[$d['value_1']] = $match[$d['value_1']].' '.$d['value_2'] ; 
    } else { 
     $match[$d['value_1']] = $d['value_1']. ' to '. $d['value_2']; 
    } 
} 

print_r($match); 
+0

太棒了!謝謝! – hellomello

-1
foreach($data as $d) { 

    echo $d['value_1'], ' to ', $d['value_2']; // this is if you want to echo the content 

    // this code is to insert 'to' in the middle of value_1 and value_2 
    $value_2 = $d['value_2']; 

    unset($d['value_2']); 

    array_push($d, "to", $value_2); 

    unset($value_2); 

} 

而且你不需要到$行的值賦給另一個值:

$value_1 = $row['value_1']; // remove this 
$value_2 = $row['value_2']; // remove this 

$data[] = array("value_1" => $row['value_1'], "value_2" => $row['value_2']); 
+0

我認爲你需要閱讀這個問題更接近一點。 –

+0

我認爲這是我從你的理解問題..在給我-1之前,你應該給我更多的信息 –

+0

它不是我的問題,你顯然沒有閱讀整篇文章。 –

0

我覺得這個首先你需要創建新的數組如下:然後

$new_array = array(); 
//consider your original array is $data 
foreach($data as $row){ 
    if (array_key_exists($row['value_1'], $new_array)) { 
     $new_array[$row['value_1']] = $new_array[$row['value_1']]. " ". 
            $row['value_2']; 
    } 
    else { 
     $new_array[$row['value_1']] = $row['value_2']; 
    } 
} 

通過遍歷顯示它:

foreach($new_array as $key => $value){ 
    echo $key ."to". $value; 
} 
相關問題