Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 30. April 2012 15:01
- nicmare
- Server-Pate
- Registriert: 15. Dezember 2010
- Beiträge: 1.314
- Webseite
array/object sortieren (code inside)
Habe mir für arrays im Netz ein plugin gesucht:
<?php
function smarty_cms_modifier_array_orderby($array) {
$args = func_get_args();
$data = array_shift($args);
foreach ($args as $n => $field) {
if (is_string($field)) {
$tmp = array();
foreach ($data as $key => $row)
$tmp[$key] = $row[$field];
$args[$n] = $tmp;
}
}
$args[] = &$data;
call_user_func_array('array_multisort', $args);
return array_pop($args);
}
?>
Damit kann man ein Array bequem sortieren: {$array|array_orderby:"irgendwas"}
funktioniert bei mehrdimensionalen arrays soweit gut. aber oft gibt es bei den modulen von cmsms Objects, die dann wiederum arrays beinhalten. Die lassen sich damit leider nicht sortieren: "Cannot use object of type stdClass as array".
Frage: Wie müsste ich das umschreiben damit der modifier mit beidem zu recht kommt?
das beispiel-object sieht ungefähr so aus:
<pre>Array
(
[0] => stdClass Object
(
[item_id] => 6
[category_id] => 0
[title] => Reise 2
[fields] => Array
(
[reiseziel] => Array
(
[fielddef_id] => 8
[name] => Reiseziel
[alias] => reiseziel
[value] => Kroatien, Novalja
[searchable] => 1
[frontend] => 1
[type] => textbox
)
)
)
[1] => stdClass Object
(
[item_id] => 3
[category_id] => 0
[title] => Reise 3
[fields] => Array
(
[reiseziel] => Array
(
[fielddef_id] => 8
[name] => Reiseziel
[alias] => reiseziel
[value] => Niederlande, Zandvoort
[searchable] => 1
[frontend] => 1
[type] => textbox
)
)
)
[2] => stdClass Object
(
[item_id] => 2
[category_id] => 0
[title] => Reise 2
[fields] => Array
(
[reiseziel] => Array
(
[fielddef_id] => 8
[name] => Reiseziel
[alias] => reiseziel
[value] => Kroatien, Novalja
[searchable] => 1
[frontend] => 1
[type] => textbox
)
)
)
[3] => stdClass Object
(
[item_id] => 1
[category_id] => 0
[title] => Reise 1
[fields] => Array
(
[reiseziel] => Array
(
[fielddef_id] => 8
[name] => Reiseziel
[alias] => reiseziel
[value] => Griechenland, Korfu
[searchable] => 1
[frontend] => 1
[type] => textbox
)
)
)
)
1</pre>
Nun will ich aber nicht diese Sortierung, sondern nach "reiseziel.value" sortieren. also die neue reihenfolge wäre dann [3], [0], [2] und [1]
Meine Projekte:
Dashcam-Test | Babyphone-Testberichte | Türspionkameras
Offline
#2 30. April 2012 17:38
- piratos
- arbeitet mit CMS/ms
- Registriert: 12. August 2011
- Beiträge: 545
Re: array/object sortieren (code inside)
Da schaust du bei php.net nach unter
http://de.php.net/manual/de/function.ar … tisort.php
da gibt es ein Programm - Beispiel dazu.
Offline
#3 30. April 2012 18:43
- nicmare
- Server-Pate
- Registriert: 15. Dezember 2010
- Beiträge: 1.314
- Webseite
Re: array/object sortieren (code inside)
bin in php nicht so bewandert und sehe auch keinen Eintrag der auf mein Beispiel zutrifft.
Meine Projekte:
Dashcam-Test | Babyphone-Testberichte | Türspionkameras
Offline
Seiten: 1