Что-то не так с $data[$key][$val] = [];
, потому что на localhost он работает хорошо, но на сервере он не делает (WordPress показывает пустую страницу, и я заметил, что она ломается именно по этой строке)
$months = array('sijecanj' => 'Siječanj', 'veljaca' => 'Veljača', 'ozujak' => 'Ožujak', 'travanj' => 'Travanj'...); $parts = array('Plodovi' ,'Korijen', 'Kora', 'Sjeme'); $data = array(); foreach($months as $key => $val) { $data[$key][$val] = []; foreach($parts as $part) { if( has_term( $part, $key ) ) { array_push($data[$key][$val], $part); } }
}
То, что я пытаюсь сделать, – это иметь массив для каждого месяца, если он имеет некоторые значения с определенными частями, а также пару пар ключ-значение в течение нескольких месяцев. (Мне нужен ключ как slug для извлечения данных из базы данных WordPress, и значение будет эхом), так что в конце я получаю что-то вроде этого
$data = [ 'Siječanj' => ['Plodovi', 'Korijen'], 'Kolovoz' => ['Kora', 'Sjeme'] ]
Это не имеет никакого отношения к вашему текстовому редактору. Это связано с вашими версиями PHP. В вашей среде разработки работает PHP 5.4+, а в рабочей среде работает PHP 5.3 или более поздняя версия, которая не поддерживает синтаксис коротких массивов (т.е. []
), который был введен в PHP 5.4.
Так
$data[$key][$val] = [];
должен стать
$data[$key][$val] = array();
для обратной совместимости.