Ich habe ein Array wie folgt bekommen:PHP Gruppenschlüssel in Array mit mehreren Werten
$sendemail= array(
'[email protected]' => '123456781234567',
'[email protected]' => '013881002296968',
'[email protected]' => '3553220865206561',
'[email protected]' => '358805051217453',
'[email protected]' => '357998054217777',
'[email protected]' => '013881002296968',
);
Ich möchte eine Ausgabe wie diese haben:
'[email protected]' => 123456781234567, 013881002296968, 357998054217777
'[email protected]' => 3553220865206561, 013881002296968
'[email protected]' => 358805051217453
der Lage sein, das zu verwenden, Schlüssel als E-Mail-Adresse und die Werte als meine E-Mail-Kumpel
$email= '[email protected]';
$body= '123456781234567, 013881002296968, 357998054217777';
mail($email, 'Your codes', $body);
und das gleiche gilt für die anderen E-Mail-Adressen.
Bitte beachten Sie, dass 2-Tasten können die gleichen Werte haben, die in Ordnung ist (zB [email protected] und [email protected] die gleichen Werte haben, der Wert wird an beide gesendet)
I nutzte diese 'for-Schleife', aber hat nicht funktioniert. Erstens kann ich sie nicht anhand von E-Mail-Adressen gruppieren, zweitens werden die gleichen Werte nicht den anderen E-Mail-Adressen zugewiesen; wie '013881002296968', die mit [email protected] und [email protected]
$sendmail= array(
'123456781234567' => '[email protected]',
'013881002296968' => '[email protected]',
'3553220865206561' => '[email protected]',
'358805051217453' => '[email protected]',
'357998054217777' => '[email protected]',
'013881002296968' => '[email protected]',
);
$out = array();
foreach($sendmail as $key=>$value)
if(array_key_exists($value, $out)) {
$out[$value][] = $key;
}
else {
$out[$value] = array($key);
}
Ausgabe
array (
'[email protected]' =>
array (
0 => 123456781234567,
1 => 013881002296968,
2 => 357998054217777,
),
'[email protected]' =>
array (
0 => 3553220865206561,
),
'[email protected]' =>
array (
0 => 358805051217453,
),
)
Sie können nicht mehrere gleiche Schlüssel in einem Array haben, Sie haben auch in $ Sendemail. –
Ja, es müsste 0 => '[email protected]' und dann 1 => '[email protected]' funktionieren. Kannst du bitte den Inhalt von 'print_r ($ sendemail)' für uns posten? Es wird helfen zu enthüllen, was wirklich los ist – jaggedsoft
Ich habe eine 'print_r ($ sendemail)' und das ist, was ich habe: '' 'Array ( [[email protected]] => 357998054217777 [[email protected] ] => 013881002296968 [[email protected]] => 358805051217453 ) '' ' – jaggedsoft