我有这个数组
array(5) {
[0]=> array(2) { [0]=> string(5) "REFER" [1]=> string(12) "Não Sócios" }
[1]=> array(2) { [0]=> string(5) "REFER" [1]=> string(12) "Não Sócios" }
[2]=> array(2) { [0]=> string(5) "REFER" [1]=> string(12) "Não Sócios" }
[3]=> array(2) { [0]=> string(5) "REFER" [1]=> string(12) "Não Sócios" }
[4]=> array(2) { [0]=> string(5) "REFER" [1]=> string(12) "Não Sócios" }
}
并希望搜索数据库以查找这些“元素”的ID,并构建一个类似下面示例的数组。
$array_ids = ("1,2", "1,2", "1,2", "1,2", "1,2");
也就是说,我想创建一个包含从数据库返回的值的简单数组。
这可能吗?如果是的话,我该怎么做?
我已经设法返回这样的记录
for($i=0; $i<count($subsgroup); $i++) {
for($j=0; $j<count($subsgroup[$i]); $j++) {
$sql_groups = $wpdb->prepare("SELECT id FROM $table_name WHERE name = %s", $subsgroup[$i][$j]);
$rows = $wpdb->get_results($sql_groups);
foreach($rows as $r) {
echo $r->id.', ';
}
}
echo '<br>';
}
这将输出类似这样的内容
1, 2,
1, 2,
1, 2,
1, 2,
1, 2,
如何将这些返回的记录放在像
这样的数组中$array_ids = ("1,2", "1,2", "1,2", "1,2", "1,2");
提前感谢。
答案 0 :(得分:1)
$array_ids = array();
for($i=0; $i<count($subsgroup); $i++) {
$ids = array();
for($j=0; $j<count($subsgroup[$i]); $j++) {
$sql_groups = $wpdb->prepare("SELECT id FROM $table_name WHERE name = %s", $subsgroup[$i][$j]);
$rows = $wpdb->get_results($sql_groups);
foreach($rows as $r) {
array_push($ids, $r->id);
}
}
array_push( $array_ids , implode(',', $ids) );
}
这里我在内部循环中创建$ids
数组,并且在每个查询中,我将数据库中的id
附加到该数组。
每次迭代后,我都会将$ids
数组附加到父$array_ids
数组,并使用$ids
将implode
内的元素粘贴在一起。
答案 1 :(得分:0)
你永远不应该把一个查询放在一个循环中 - 它可能会导致很多麻烦。如果我理解你的问题我想你可以做类似的事情:
$sql_groups = $wpdb->prepare("SELECT id FROM $table_name WHERE name =
%s", $subsgroup[$i][$j]);
$rows = $wpdb->get_results($sql_groups);
$array_ids = [];
foreach($rows as $key=>$val){
$array_ids[]=$key;
}
echo $array_ids