带有逗号的单独PHP数组的数据
根据查询:带有逗号的单独PHP数组的数据,php,mysql,arrays,implode,Php,Mysql,Arrays,Implode,根据查询: $query = $db->query("SELECT id, email, status, enviados FROM contactos LIMIT 0,500"); 当我收到电子邮件并将它们存储在一个数组中时,我想将它们分开,用逗号打印,然后将它们放入一个变量中,结果如下: $ variable = a1, a2, a3; 我试图处理内爆,但它不起作用,我已经看到了其他问题,但我找不到解决方案 这是我的密码 $query = $db->query("S
$query = $db->query("SELECT id, email, status, enviados FROM
contactos LIMIT 0,500");
当我收到电子邮件并将它们存储在一个数组中时,我想将它们分开,用逗号打印,然后将它们放入一个变量中,结果如下:
$ variable = a1, a2, a3;
我试图处理内爆,但它不起作用,我已经看到了其他问题,但我找不到解决方案
这是我的密码
$query = $db->query("SELECT id, email, status, enviados FROM
contactos LIMIT 0,500");
$count = $query->num_rows;
while($row = mysqli_fetch_array($query)){
$datos_seleccionados[] = array(
'emails' => $row['email']
);
}
for ($i = 0; $i <= $count; $i++) {
echo implode(",", $datos_seleccionados[$i]);
}
$query=$db->query(“从中选择id、电子邮件、状态、环境
接触限值0500“;
$count=$query->num\u行;
while($row=mysqli\u fetch\u数组($query)){
$datos_selectionados[]=数组(
'emails'=>$row['email']
);
}
对于($i=0;$i您需要这样做
$datos_seleccionados = [];
while($row = mysqli_fetch_array($query))
{
$datos_seleccionados[] = $row['email'];
}
echo implode(",", $datos_seleccionados);
你需要这样做
$datos_seleccionados = [];
while($row = mysqli_fetch_array($query))
{
$datos_seleccionados[] = $row['email'];
}
echo implode(",", $datos_seleccionados);
您可以为此使用:
示例代码:
$data = [
['title' => 'foo', 'val' => 1],
['title' => 'bar', 'val' => 5],
['title' => 'foobar', 'val' => 9]
];
echo implode(',', array_column($data, 'val'));
在这里,我们只需按键对元素进行分组(在本例中为val
),然后对返回的数组进行内爆
因此,在你的情况下:
echo implode(',', array_column(mysqli_fetch_array($query), 'email'));
您可以为此使用:
示例代码:
$data = [
['title' => 'foo', 'val' => 1],
['title' => 'bar', 'val' => 5],
['title' => 'foobar', 'val' => 9]
];
echo implode(',', array_column($data, 'val'));
在这里,我们只需按键对元素进行分组(在本例中为val
),然后对返回的数组进行内爆
因此,在你的情况下:
echo implode(',', array_column(mysqli_fetch_array($query), 'email'));
它不起作用,因为您正在此处将数据存储到多维数组中:
$datos_seleccionados[] = array(
'emails' => $row['email']
);
使用echo introde(“,”,$datos_seleccionados[$i]);
在中查找另一个问题,这意味着,您正在使用逗号内爆数组,您可以按照@Rakesh的建议执行:
解决方案(我使用此代码进行了一些优化):
if($count > 0){ // if count exist
$datos_seleccionados = array(); // initiate
while($row = mysqli_fetch_array($query)){
$datos_seleccionados[] = $row['email'];
}
echo implode(",",$datos_seleccionados);
}
else{
echo "No result found";
}
它不起作用,因为您正在此处将数据存储到多维数组中:
$datos_seleccionados[] = array(
'emails' => $row['email']
);
使用echo introde(“,”,$datos_seleccionados[$i]);
在中查找另一个问题,这意味着,您正在使用逗号内爆数组,您可以按照@Rakesh的建议执行:
解决方案(我使用此代码进行了一些优化):
if($count > 0){ // if count exist
$datos_seleccionados = array(); // initiate
while($row = mysqli_fetch_array($query)){
$datos_seleccionados[] = $row['email'];
}
echo implode(",",$datos_seleccionados);
}
else{
echo "No result found";
}
为什么你会选择while和then for?我这样做是因为while我将数据添加到数组中,for的思想是用逗号分隔,如果不注意SQL是无序的,那么使用LIMIT而不使用ORDER by几乎没有意义如果你只需要一个逗号分隔的字符串,我建议你查看我的SQL GROUP_CONCAT function为什么要使用while和then for?我这样做是因为while我将数据添加到数组中,而for的思想是用逗号分隔数据,如果不注意的话,您建议我使用逗号分隔数据。请注意,SQL是无序的,所以如果您只需要一个逗号分隔的字符串,那么使用LIMIT而不使用ORDER by几乎没有意义d建议查看MySQL GROUP_CONCAT函数这是for/while解决方案中更好的答案,而+1用于添加检查这是for/while解决方案中更好的答案,而+1用于添加检查