2017-04-21 17 views
0

以下の関数get_brand()で、最初の行にテキストを追加します: - 選択 - 。 私の考えはarray_mergeを使用することでした。しかし、私はすべてのオプションの上に余分な行を追加します。ワードプレスのデフォルトの--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($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ここではKE、

$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

我々はobjectからtype-castingarrayです。

変更はこれに:

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; 
} 
関連する問題