2017-12-12 4 views
1

1つの文字列が何回配列されているかを数えようとしています。 これは私のコードです:foreach内の同じキーが何回存在するかをカウントするには

<?php 

global $wpdb; 

$results = $wpdb->get_results($wpdb->prepare("SELECT id FROM wp_frm_items WHERE user_id=%d ORDER BY created_at DESC", 97)); 
$i = 0; 

if ($results) { 
    foreach($results as $row) { 
     $policy_id = $wpdb->get_results($wpdb->prepare("SELECT meta_value FROM wp_frm_item_metas WHERE field_id=%d AND item_id=%s", 203, $row->id)); 

     $array = array($policy_id[0]->meta_value); 

     foreach ($array as $key) { 
      if (array_count_values($array) == 1) { 
       echo $key; 
      } else { 
       echo 'aaa'; 
      } 
     } 
    } 
} 

任意のアイデアこれを行うにはどのように? ありがとうございます

+0

こんにちはスタニスラフ、編集をしました。これがうまくいったら教えてください! :) –

答えて

0

これは役に立ちますか?

<?php 

$details = [ 
    0 => ["id"=>"1", "name"=>"Mike", "num"=>""], 
    1 => ["id"=>"2", "name"=>"Carissa", "num"=>"08548596258"], 
    2 => ["id"=>"1", "name"=>"Mathew", "num"=>"784581254"], 
]; 

function unique_multidim_array($array, $key) { 
    $temp_array = []; 
    $i = 0; 
    $key_array = []; 

    foreach($array as $val) { 
     if (!in_array($val[$key], $key_array)) { 
      $key_array[$i] = $val[$key]; 
      $temp_array[$i] = $val; 
     } 
     $i++; 
    } 
    return $temp_array; 
} 

$details = unique_multidim_array($details,'id'); // check on 'id' and remove duplicates 

echo '<pre>'; 
var_dump($details); 
echo '</pre>'; 
?> 

上の例の出力は以下となります。

array(2) { 
    [0]=> 
    array(3) { 
    ["id"]=> 
    string(1) "1" 
    ["name"]=> 
    string(4) "Mike" 
    ["num"]=> 
    string(10) "" 
    } 
    [1]=> 
    array(3) { 
    ["id"]=> 
    string(1) "2" 
    ["name"]=> 
    string(7) "Carissa" 
    ["num"]=> 
    string(11) "08548596258" 
    } 
} 

は今、あなたはこのアレイ上のforeachを使用することができます。重複をスキップしました。

ドキュメント:http://php.net/manual/en/function.array-unique.php

+0

No..it didnt work :( – Stanislav

+0

1秒、変わった。 –

0

私はあなたが$ワードの出現箇所の数をしたい場合は、あなたが必要とするので、連想配列を返すarray_count_values

if (array_count_values($array)[$key] === 1) { 
    echo $key; 
} 

if (array_count_values($array) == 1){ 
    echo $key; 
} 

を変更する必要があると思いますarray_count_values($ array)[$ word]です。 また、foreach内で配列 "$ key"の値を指定しないと、かなり混乱する可能性があります。