2017-04-21 99 views
0

在下面的函數get_brand()我想在第一行添加文本: - 選擇 - 。 我的想法是使用array_merge。但是我會在所有選項上獲得一個空行。添加默認 - 選擇 - 選項結果數組在wordpress

我需要做些什麼來獲取文本: - 選擇頂部?

function get_brand() { 
global $wpdb; 

    $brand_array = $GLOBALS['wpdb']->get_results("SELECT brand FROM " . $wpdb->prefix . "automatten GROUP BY brand ORDER BY brand ASC"); 
    $select = array("brand" => '--Select--'); 
    $result = array_merge($select, $brand_array); 
return $result; 
} 

結果是:

陣列([品牌] => - 選擇 - [0] => stdClass的對象([品牌] => AIXAM)[1] => stdClass的對象([品牌] =>阿爾法)[2] => stdClass的 對象([品牌] => AMC)[3] => stdClass的對象([品牌] => Artega)

+0

看到結果列表。它被填滿,所以不是空的 – Hermants

+1

來自數據庫的值是對象,而不是數組。嘗試使'$ select'成爲一個包含'stdClass'對象的數組,其中'brand'屬性的值爲'--Select - '。 – StuBez

+0

你能分享你的預期產出嗎? –

回答

1

你的結果是在stdClass格式,因此請使您的結果與對象相同,創建該類的數組,然後使用array_merge li柯,

$brand_array = $GLOBALS['wpdb']->get_results("SELECT brand FROM " . $wpdb->prefix . "automatten GROUP BY brand ORDER BY brand ASC"); 
$brand = new stdClass; // create a new object here 
$brand->brand = '--Select--'; // assign Select here 
$result = array_merge(array($brand), $brand_array); // now use array merge 
+0

正確的解決方案!謝謝。 – Hermants

+0

太棒了,請打上勾號,以便其他用戶可以從此答案中獲得幫助。 –

0

在這裏,我們type-castingarrayobject

更改爲:

array_merge($select, $brand_array); 

此:

array_merge((object)$select, $brand_array); 

PHP代碼:

<?php 
$select = array("brand" => '--Select--'); 

function get_brand() 
{ 
    global $wpdb; 

    $brand_array = $GLOBALS['wpdb']->get_results("SELECT brand FROM " . $wpdb->prefix . "automatten GROUP BY brand ORDER BY brand ASC"); 
    $select = array("brand" => '--Select--'); 
    $result = array_merge((object)$select, $brand_array); 
    return $result; 
}