2017-05-04 58 views
0

如何將我的值字符串從數組中的MYSQL轉換?所以我可以使用array_unique。因爲我在一列中有多個副本。當我回應出來。它顯示全部使用PHP。我試過DISTINCT,但它只返回一列而不返回其他列。如何將字符串轉換爲PHP中的數組array_unique

enter image description here 保持重複名稱(BOLD RED)。

代碼:

$querysql= "SELECT * FROM `stock` WHERE ID = '$id' "; 

$fetchdata = $database->query($querysql); 

while($rows= $fetchdata->fetch_assoc()) { 

echo "<div id='companylocal'>"; 
    echo $rows['Company_Locate']; 
echo "</div>"; 
} 
+0

你會請更新您的問題與當前outputand什麼是你想要的輸出,因爲我有點困惑與你的問題 –

+0

@BunkerBoy添加了一個圖像。如果你檢查它。它不斷重複,這就是爲什麼它不能很好地對齊。 –

回答

0

使用GROUP BY試試這個,

$querysql= "SELECT * FROM `stock` WHERE ID = '$id' "; 

$fetchdata = $database->query($querysql); 

while($row= $fetchdata->fetch_assoc()) { 
    $rows[] = $row['Company_Locate']; 
} 
$rows = array_unique($rows); 
print_r($rows); 
+0

這是工作,但爲什麼有Array([0] => YoProgram Inst。[1] =>)Array(YoProgram Inst。[2] =>) –

+0

這是一種打印數組內容的方法。如果你想遍歷一個使用foreach($行爲$ v){echo $ v;} –

0

在查詢

$querysql= "SELECT * FROM `stock` WHERE ID = '$id' GROUP BY Company_Locate"; 
+0

我試過了,但它不工作。它只是顯示重複。 –

0

表名:測試


|     ID     |     colA     |     colB     |


|   |  值5   |  值C   |


|   |  值4   |  值B   |


|   |  值3   |  值B   |


|   |  值2   |  值B   |


|   |  值1   |  值A   |


從我上面的示例。 列(colA)具有唯一值,而列(colB)具有重複值。 分組柱(COLB)查詢將返回唯一值的行從塔(COLB)

SQL:SELECT ID,可樂,COLB測試從GROUP BY COLB 返回:


|     ID     |     colA     |     colB     |


|   |  值1   |  值A   |


|   |  值2   |  值B   |


|   |  值5   |  值C   |


更多更好的解釋請https://www.w3schools.com/sql/sql_groupby.asp

$DataFromDatabase = [ ['id' => 1, 
        'colA' => "value 1", 
        'colB' => "value A" 
        ], 
        ['id' => 2, 
        'colA' => "value 2", 
        'colB' => "value B" 
        ], 
        ['id' => 3, 
        'colA' => "value 3", 
        'colB' => "value B" 
        ], 
        ['id' => 4, 
        'colA' => "value 4", 
        'colB' => "value B" 
        ], 
        ['id' => 5, 
        'colA' => "value 5", 
        'colB' => "value C" 
        ] 
       ]; 
    echo "Data FROM database<br/>"; 

echo "<pre>"; print_r($DataFromDatabase); echo "</pre>";

//Unique Array $UniqueArray = [];

//Loop the Database result 
foreach($DataFromDatabase AS $data){ 
    //Make the unique value your key for your array 
    $UniqueArray[$data['colB']][] = ['id' => $data['id'], 
            'colA' => $data['colA'] 
            ]; 
} 

echo "Unique Array<br/>"; 
echo "<pre>"; 
print_r($UniqueArray); 
echo "</pre>"; 

您uniqueArray的結果將是 是這樣的:

Array 
(
    [value A] => Array 
     (
      [0] => Array 
       (
        [id] => 1 
        [colA] => value 1 
       ) 

     ) 

    [value B] => Array 
     (
      [0] => Array 
       (
        [id] => 2 
        [colA] => value 2 
       ) 

      [1] => Array 
       (
        [id] => 3 
        [colA] => value 3 
       ) 

      [2] => Array 
       (
        [id] => 4 
        [colA] => value 4 
       ) 

     ) 

    [value C] => Array 
     (
      [0] => Array 
       (
        [id] => 5 
        [colA] => value 5 
       ) 

     ) 

) 

值堆疊在每個唯一列(colB)值上。 它現在取決於你如何打印你的陣列的價值

+0

很好的例子。假設我想顯示id的4和3,並且在你的例子中它們在ColB中有重複。但是如果你在ColB的GROUP BY,他們不會顯示。所以我只是在PHP中找到了一個unique_array的方法。但我有字符串,我不知道如何執行。 –

+0

嗨@MonPadi我更新了我的答案。希望它能幫助你。 –

+0

檢查我的形象兄弟。感謝您幫助我到目前爲止。 –

相關問題