В PHP ли массив или структура (ассоциативный массив), вы просто сделать это:Foreach() array.each() в coldfusion ... назад для массива и структуры? Что дает?
foreach ($ra as $key=>$value){}
и для массива вы получаете 1=>first value, 2=>second value, etc
. Для «структуры» вы получаете firstkey=>first value, secondkey=>second value, etc
.
В ColdFusion:
ra = {'key1'='val1','key2'='val2'};
ra.each(function(value, key) {
writeOutput("#key# => #value#<br />");
});
ra = ['one','two'];
ra.each(function(value, key) {
writeOutput("#key# => #value#<br />");
});
и вы получите:
val1 => key1
val2 => key2
1 => one
2 => two
Я получаю значение (знач1), где я ожидал ключ (key1) Итак, что я делаю неправильно? Я настраиваю свою структуру назад? Действительно ли coldfusion делает each()
напротив, для массива/структуры?
Ответ, через @Leigh: Да, они возвращаются назад. Вот как это делается:
if(isStruct(ra)){
ra.each(function(key, value) {
writeOutput("#key# => #value#<br />");
});
}else{//aray
arrayeach(ra, function(value, key) {
writeOutput("#key# => #value#<br />");
});
}
Итерация через структуры CF не имеет * гарантированного * заказа. Хотя предположительно это изменилось (несколько) в 2016 году. См. [StructNew («упорядочено»)] (https://helpx.adobe.com/coldfusion/cfml-reference/coldfusion-functions/functions-s/structnew.html) – Leigh
Я вижу, но мой вопрос заключается не в заказе, а в вопросе функции call(). –
Duh! Извините, совершенно неправильно. – Leigh