Heim >Backend-Entwicklung >PHP-Tutorial >Deduplizierung von PHP-Array-Operationen T.T
Meister, mein Array sieht so aus
array(2) {
[14] => array(6) {
<code>["job_name"] => string(44) "苹果,香蕉,苹果"</code>
}
[3] => array(6) {
<code>["job_name"] => string(44) "梨子,梨子,西红柿"</code>
}
}
Ich möchte, dass es
istarray(2) {
[14] => array(6) {
<code>["job_name"] => string(44) "苹果2,香蕉1"</code>
}
[3] => array(6) {
<code>["job_name"] => string(44) "梨子2,西红柿1"</code>
}
}
Ist das Jiang Zi schwierig? T.T. Weiß es jemand?
Antwortinhalt:array(2) {
[14] => array(6) {
<code>["job_name"] => string(44) "苹果,香蕉,苹果"</code>}
[3] => array(6) {
<code>["job_name"] => string(44) "梨子,梨子,西红柿"</code>}
}
ist
array(2) { [14] => array(6) {
<code>["job_name"] => string(44) "苹果2,香蕉1"</code>}
[3] => array(6) {
<code>["job_name"] => string(44) "梨子2,西红柿1"</code>}
}
<code class="php">array_walk($arr, function(&$item) { $item['job_name'] = join(',', array_unique(explode(',', $item['job_name']))); });</code>Ich habe die Frage nicht klar verstanden, hier ist die überarbeitete Antwort
<code class="php">array_walk($arr, function(&$item) { $after = array_values(array_unique(explode(',', $item['job_name']))); foreach ($after as $key=>$value) { preg_match_all("/$value/", $item['job_name'], $matches); $after[$key] = $value . count($matches[0]); } $item['job_name'] = join(',', $after); });</code>bedeutet das Feld
in diesem zweidimensionalen Array. Wenn es Duplikate gibt, legen Sie einfach die entsprechende Anzahl von Wiederholungen nach der Wiederholung fest, oder?
job_name
<code class="php">foreach ($arr as $fruits){ $fruits_array = explode(',',$fruits['job_name']); $count_array = array(); foreach ($fruits_array as $fruit){ $count_array[$fruit][] =1; } $sum_data =array(); foreach ($count_array as $fruit=>$fruit_array){ $sum_data[] = $fruit. count($fruit_array); } $sum_data = implode(',',$sum_data); $return_data[]["job_name"] = $sum_data; }</code>
Fehlerprüfung im Zusammenhang mit Eingabearrays wurde noch nicht verarbeitet
<code>function dealArr($arr=array()){ foreach ($arr as $key => $value) { $a0[$key] = explode(',',$value['job_name']);//分割字符串 $a1[$key] = array_count_values($a0[$key]);//统计个数 $temp=array(); foreach ($a1[$key] as $key2 => $value2) { $temp[$key2]=$key2.$value2; } $res[$key]['job_name']=implode(',',$temp);//字符串转数组 } return $res; }</code>
<code>$arr[14]['job_name']="苹果,香蕉,苹果"; $arr[3]['job_name']="梨子,梨子,西红柿"; var_dump(dealArr($arr)); </code>