-4

私の PHP スクリプトはいくつかの配列を返します。その配列内の重複を削除したいと考えています。方法を教えてください。PHPからだけで、MySQLから重複を削除したくありません。これに似た質問をいくつか見ましたが、回答を実装する方法を見つけることができませんでした。

私のPHP:

$con = mysqli_connect($host, $user, $pwd, $db);

if(mysqli_connect_errno($con)) {
    die("Failed to connect to MySQL: " . mysqli_connect_error());
} 


$sql = "SELECT Grad, Predmet FROM lista";
$result = mysqli_query($con, $sql);

$rows = array();

while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {

        $rows[] = $row; 
    }

mysqli_close($con);

$rows = (object) array('lista' => $rows);
echo json_encode($rows);

そして、スクリプトはこれを返します:

{"lista":[{"Grad":"Beograd","Predmet":"matematika"},{"Grad":"Novi_Sad","Predmet":"matematika"},{"Grad":"Beograd","Predmet":"matematika"},{"Grad":"Novi_Sad","Predmet":"matematika"},{"Grad":"Beograd","Predmet":"informatika"},{"Grad":"Beograd","Predmet":"informatika"}]}
4

2 に答える 2

1

この関数を試してくださいhttp://php.net/manual/en/function.array-unique.php

array array_unique ( array $array [, int $sort_flags = SORT_STRING ] )

php.net ドキュメントの例:

<?php
    $input = array("a" => "green", "red", "b" => "green", "blue", "red");
    $result = array_unique($input);
    print_r($result);
?>
于 2013-07-30T08:25:51.127 に答える
0

これを置き換えます:

$rows = (object) array('lista' => $rows);
echo json_encode($rows);

これとともに:

$lista = array_map('unserialize', array_unique(array_map('serialize', $rows)));
echo json_encode((object) array('lista' => $lista));
于 2013-07-30T08:53:21.070 に答える