Es gibt keine expliziten Schleifen, wenn Sie array_map
verwenden können, obwohl es intern Schleifen:
function format_date($val) {
$v = explode(" ", $val);
return $v[0];
}
$arr = array_map("format_date", $arr);
Vom PHP Manual:
array_map()
gibt ein Array alle Elemente array1
enthält nach der Anwendung die callback
Funktion zu jedem. Die Anzahl der Parameter, die die Funktion callback
akzeptiert, sollte mit der Anzahl der an die array_map()
übergebenen Arrays übereinstimmen.
Auch wenn Sie mit Daten zu tun haben, ist der richtige Weg zu tun, wie folgt:
return date("Y-m-d", strtotime($val));
Der einfache Weg ist Schleifen mit einem foreach()
zu verwenden:
foreach($arr as $key => $date)
$arr[$key] = date("Y-m-d", strtotime($date));
Dies ist die einfachste Art und Weise, wie ich die index
als etwas betrachten kann.
Eingang:
<?php
$arr = array(
"2016-03-03 19:17:59",
"2016-03-03 19:20:54",
"2016-05-03 19:12:37"
);
function format_date($val) {
$v = explode(" ", $val);
return $v[0];
}
$arr = array_map("format_date", $arr);
print_r($arr);
Ausgabe
Array
(
[0] => 2016-03-03
[1] => 2016-03-03
[2] => 2016-05-03
)
Demo: http://ideone.com/r9AyYV
Ich werde die offensichtliche Frage stellen. Was ist los mit Loops ....? –
* "Ohne irgendwelche Schleifen zu erstellen?" * ** NEIN. ** Am Ende müssen Sie jedes Array-Element ändern, so dass Sie das Array durchlaufen müssen. Suchen Sie einfach, wie Sie ein Datumsformat in ein anderes Format konvertieren und wie Sie eine Funktion auf jedes Array-Element anwenden. – Rizier123
eine ungerade Anzahl von Fragen fragen: wie zu tun, X ohne (einfügen grundlegende PHP \ Programmierung Begriff \ Funktion hier) – nogad