我试图计算一个字符串在数组中的次数,如果它只是一次我想要回显这个字符串。 这是我的代码:
<?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"=>"9876543210"],
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) "9876543210"
}
[1]=>
array(3) {
["id"]=>
string(1) "2"
["name"]=>
string(7) "Carissa"
["num"]=>
string(11) "08548596258"
}
}
现在你可以在这个数组上使用foreach了。它跳过了重复项。
答案 1 :(得分:0)
我认为你需要改变
if (array_count_values($array) == 1){
echo $key;
}
到
if (array_count_values($array)[$key] === 1) {
echo $key;
}
array_count_values返回一个关联数组,所以如果你想要$ word的出现次数,你需要array_count_values($ array)[$ word]。 另外,我不会在foreach中将我的数组“$ key”的值命名,这可能会令人困惑。