php中数组中存储的唯一对
我被困在一个场景中,需要保存用户输入,如。。。(在一次行动中,我得到了这些信息) 现在我需要将所有这些值存储在一个数据库中(只有唯一的对) 到目前为止,我尝试了用“,”分解$string,并将所有内容存储在一个数组中,如 $array[“a”]=“php”;。。。但这也会覆盖a=java//问题 我不需要在数据库中检查它们是否已经存在。这已经被处理过了(所有转储的数据一次得到一个唯一的标识符) 我所需要做的就是得到唯一的对并转储到数据库中…意味着php中数组中存储的唯一对,php,arrays,Php,Arrays,我被困在一个场景中,需要保存用户输入,如。。。(在一次行动中,我得到了这些信息) 现在我需要将所有这些值存储在一个数据库中(只有唯一的对) 到目前为止,我尝试了用“,”分解$string,并将所有内容存储在一个数组中,如 $array[“a”]=“php”;。。。但这也会覆盖a=java//问题 我不需要在数据库中检查它们是否已经存在。这已经被处理过了(所有转储的数据一次得到一个唯一的标识符) 我所需要做的就是得到唯一的对并转储到数据库中…意味着 a = php, a = java, b = .
a = php, a = java, b = .net, c = java, c=php
我能看到的唯一解决方案是…爆炸后…根据新的唯一标识检查数据库中的对…mysql\u num\u行…如果不存在,则转储其他不
有什么简单的方法吗
$string = "'a':'php,'b':'.Net','c':'java','c':'php','c':'java','a':'php','a':'java'";
$temp = array_map(function($item) {
list($key, $value) = explode(':', $item);
return array(str_replace("'", "", $key) => str_replace("'", "", $value));
}, explode(",", $string));
$results = array();
foreach($temp as $item) {
$key = key($item);
if(!isset($results[$key]) || !in_array($item[$key], $results[$key])) {
$results[$key][] = $item[$key];
}
}
print_r($results);
输出:
Array
(
[a] => Array
(
[0] => php
[1] => java
)
[b] => Array
(
[0] => .Net
)
[c] => Array
(
[0] => java
[1] => php
)
)
最好的方法是创建多维数组
<?php
$string = "'a':'php','b':'.Net','c':'java','c':'php','c':'java','a':'php','a':'java'";
$array = array();
$temp_arr = explode(",", $string);
foreach($temp_arr as $key=>$value)
{
list($tempkey,$tempValue) = explode(':', $value);
$tempKey = trim($tempkey,"'");
$tempValue = trim($tempValue,"'");
$array[$tempKey][] = $tempValue;
}
$array = array_map('array_unique',$array);
echo "<pre>";
print_r($array);
?>
<?php
$string = "'a':'php','b':'.Net','c':'java','c':'php','c':'java','a':'php','a':'java'";
$array = array();
$temp_arr = explode(",", $string);
foreach($temp_arr as $key=>$value)
{
list($tempkey,$tempValue) = explode(':', $value);
$tempKey = trim($tempkey,"'");
$tempValue = trim($tempValue,"'");
$array[$tempKey][] = $tempValue;
}
$array = array_map('array_unique',$array);
echo "<pre>";
print_r($array);
?>
Array
(
[a] => Array
(
[0] => php
[2] => java
)
[b] => Array
(
[0] => .Net
)
[c] => Array
(
[0] => java
[1] => php
)
)