我希望我的数组只回显不同的值。 这是我到目前为止的PHP代码:
$get_con = mysqli_query($con, "SELECT * FROM messages WHERE from_id='$my_id' OR to_id='$my_id' ");
$last_select_id = "";
while ($run_con = mysqli_fetch_array($get_con)) {
$from_id = $run_con['from_id'];
$to_id = $run_con['to_id'];
//This just ensures that it echos the other person's id and not my own
if ($from_id == $my_id) {
$select_id = $to_id;
} else {
$select_id = $from_id;}
//Trying to save the iterations
if ($select_id != $last_select_id) {
$last_select_id = $select_id;
echo "$select_id<br/>";
}
}
例如,我的数组有:1,1,2,3,4,2,4。
我的代码将返回为:1,2,3,4,2,4
我想要:1,2,3,4
问题是2和4重复两次。 声明,&#34; if($ select_id!= $ last_select_id){&#34;正在停止&#34; 1&#34;从一开始就重复两次。这意味着我的if语句只能为前一次迭代存储$ last_select_id一次。我搜索了两天但找不到答案。我将不胜感激任何帮助!谢谢。
答案 0 :(得分:2)
您可以使用几种方法。
在PHP中,您可以创建一个数组,并将每个条目放入数组中,因为它返回/ echoed / whatever。
$array = array( 1,1,2,3,4,4,5 );
$seen = array();
foreach ( $array as $arr ) {
if ( !in_array( $arr, $seen )) {
echo $arr.PHP_EOL;
$seen[] = $arr;
}
}
当然,无论如何,最好不要在数组中有重复的条目。在PHP中,您可以使用array_unique():
$array = array( 1,1,2,3,4,4,5 );
$array = array_unique( $array );
foreach ( $array as $arr ) echo $arr.PHP_EOL;
但可能比这更好的是在数组中没有重复项开头。在SQL中查看“SELECT DISTINCT”....
答案 1 :(得分:1)
PHP具有此功能
#form-wrapper
{
height:100%;
flex: 1 1 auto;
margin:0 auto;
display:block;
}
#form-wrapper input{
display:block;
}
文档here。
在你的情况下,它将是
array_unique($array)
答案 2 :(得分:1)
我会在查询中使用SELECT DISTINCT
语句:
//I'm assuming you have a column called "id"
$get_con = mysqli_query($con, "SELECT DISTINCT id FROM messages WHERE from_id='$my_id' OR to_id='$my_id' ");
SELECT DISTINCT
上的信息可在此处找到:http://www.mysqltutorial.org/mysql-distinct.aspx
从那里你可以执行以下操作输出所有id:
foreach($id in $get_con){
echo $id
}
您还可以根据需要调整需求。