Intereting Posts

взорвать строку и установить ключ для массива с текстом, который находится перед разделителем?

Есть ли способ сделать ввод следующим образом:

| testing==one two three | setting==more testing | 

и получить что-то вроде этого

 array['testing'] = "one two three"; array['setting'] = "more testing" 

Прямо сейчас я просто взрываю строку и устанавливаю массив с пронумерованным индексом, но я бы хотел, чтобы пользователь мог вводить элементы в любом порядке и иметь возможность использовать массив с ключами из первого значения.

 function get_desc_second_part(&$value) { list(,$val_b) = explode('==',$value); $value = trim($val_b); } 

Благодаря!

Что-то вроде этого? Трубы добавляют некоторую, может быть, лишнюю сложность (разделителем могут быть новые строки):

 $arr = array(); foreach (explode('|', $str_input) as $line) { $l = explode('==', trim($line)); if (isset($l[1])) $arr[$l[0]] = $l[1]; } print_r($arr); /* Array ( [testing] => one two three [setting] => more testing ) */ 

Если вы можете изменить формат ввода в стандартный формат ini, вы можете просто вызвать parse_ini_file / parse_ini_string . Ваш вход должен выглядеть так:

 testing = one two three setting = more testing 

Это также даст вам комментарии (начало строк с ; ) и разделы бесплатно. См. http://www.php.net/parse_ini_file

Вы уже выполняете большую часть работы, когда вы взорваетесь на == , индекс массива может быть установлен вручную в строку, и вы уже выделяете строку. Просто установите записи массива вручную,

 $myarray = new array(); $myarray[$your_exploded_1st_part_string_here] = exploded_second_part