从WP_Query
我转储存储在不同数组中的字符串:
array(1) {
[0]=>
string(8) "Portugal"
}
array(1) {
[0]=>
string(5) "Spain"
}
array(1) {
[0]=>
string(5) "Italy"
}
array(1) {
[0]=>
string(6) "Monaco"
}
array(1) {
[0]=>
string(5) "Spain"
}
array(1) {
[0]=>
string(9) "Lithuania"
}
我正在尝试将这些数组合并到一个数组中,删除重复的字符串,如"Spain"
,并获取唯一值的数量。
我试图使用array_merge()
:
$tester = array();
foreach($array_string as $value) {
array_merge($tester, $value);
}
$result = array_unique($tester);
print_r($result);
但是没有任何不错的结果,错误告诉<b>Warning</b>: array_merge(): Argument #2 is not an array
有人能告诉我哪里错过了这一点吗?非常感谢所有可能的帮助,将会期待。
答案 0 :(得分:1)
问题中贴出的代码几乎是好的。意图是正确的,但你错过了一个简单的事情:你用一个空数组初始化Y=[ 1 2 3 ; 4 5 6 ; 3 4 5];
h = bar3(Y);
cm = get(gcf,'colormap'); % Use the current colormap.
cnt = 0;
for jj = 1:length(h)
xd = get(h(jj),'xdata');
yd = get(h(jj),'ydata');
zd = get(h(jj),'zdata');
delete(h(jj))
idx = [0;find(all(isnan(xd),2))];
if jj == 1
S = zeros(length(h)*(length(idx)-1),1);
dv = floor(size(cm,1)/length(S));
end
for ii = 1:length(idx)-1
cnt = cnt + 1;
S(cnt) = surface(xd(idx(ii)+1:idx(ii+1)-1,:),...
yd(idx(ii)+1:idx(ii+1)-1,:),...
zd(idx(ii)+1:idx(ii+1)-1,:),...
'facecolor',cm((cnt-1)*dv+1,:));
end
end
rotate3d
,然后再从未添加任何东西。最后,它仍然是空的,array_unique()
无关,只能返回一个空数组。
错误在于:
$tester
array_merge()
不会更改作为参数传递给它的数组。它返回一个代码忽略的新数组(而不是将其保存到array_merge($tester, $value);
)。
这就是你的代码的样子:
$tester
您可以使用call_user_func_array()
来调用array_merge()
并将$tester = array();
foreach($array_string as $value) {
$tester = array_merge($tester, $value);
}
$result = array_unique($tester);
print_r($result);
的值作为参数传递。返回的数组包含重复项;将其传递给array_unique()
会将其删除:
$array_string
更简单(也可能更快)的方法是使用array_column()
将值输入数组,然后将其传递给$result = array_unique(call_user_func_array('array_merge', $array_string));
,当然:
array_unique()
此解决方案仅适用于PHP 5.5或更高版本($result = array_unique(array_column($array_string, 0));
功能在旧版本中不存在。)
答案 1 :(得分:-1)
要获取合并数组中唯一字符串的数量,您必须在WP_Query
之前设置空数组
$tester = array();
比WP_Query
内部while循环每个字符串放入单独的数组并推送到$tester
foreach((array)$array_string as $key=>$value[0]) {
array_push($tester,$value);
}
使用$tester
函数找到数组array_unique()
中的唯一值,这些函数应放在WP_Query
while循环之后。
$unique_array_string = array_unique($tester, SORT_REGULAR);
$unique_string_number = sizeof($unique_array_string);
答案 2 :(得分:-1)
您将创建一个数组,并将获取数组的键,用于像spain ..等城市名称。它将始终为不同的城市命名......
$data= array();
$data1 = array("Portugal");
$data2 = array("Spain");
$data3 = array("Italy");
$data4 = array("Monaco");
$data5 = array("Spain");
$data6 = array("Lithuania");
$merge = array_merge($data1, $data2,$data3,$data4,$data5,$data6);
$data = array();
foreach($merge as $value) {
$data[$value] = $value;
}
echo '<pre>',print_r($data),'</pre>';