Intereting Posts
DOM Parser для выделения ключевых слов, не работающих Изображение автоматически поворачивается при загрузке PHP file_exists или is_file не отвечает правильно в течение 10-20 с на NFS-файлах (EC2) mysqli multiple query – set variable производит ошибку boolean / как пропустить это? Ошибка безопасности AWS SSL: 60: SSL-сертификат …: невозможно получить сертификат локального эмитента Отключить выполнение Javascript на определенных страницах (HTML / PHP) CodeIgniter: как «выделить» ссылку на страницу, на которой пользователь в данный момент включен? Как отображать JSON-данные для чтения в Интернете для пользователей в laravel? Назначение массива php в массив javascript PHP и инструкция goto для добавления в PHP 5.3 отображать данные из базы данных в таблицу html Запись нескольких файлов в одном запросе CURL Сортировка несортированного текстового файла и переписывание в тот же текстовый файл в отсортированном порядке PHP: JSON не работает при использовании urldecode и mcrypt Найти разницу в месяц в php?

php взорвать и заставить массивные ключи начинаться с 1, а не 0

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

Теперь, как заставить этот массив начать с 1, а не 0?

Это очень просто для типизированного массива, так как мы можем написать его вот так:

array('1'=>'value', 'another value', 'and another one'); 

НО для массива, который создается «на лету» с помощью взрыва, как это сделать?

Благодарю.

Solutions Collecting From Web of "php взорвать и заставить массивные ключи начинаться с 1, а не 0"

 $exploded = explode('.', 'a.string.to.explode'); $exploded = array_combine(range(1, count($exploded)), $exploded); var_dump($exploded); 

Готово!

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

 function explode_from_1($separator, $string) { $x = explode($separator, $separator.$string); unset($x[0]); return $x; } не function explode_from_1($separator, $string) { $x = explode($separator, $separator.$string); unset($x[0]); return $x; } 

более общий подход:

 function explode_from_x($separator, $string, $offset=1) { $x = explode($separator, str_repeat($separator, $offset).$string); return array_slice($x,$offset,null,true); } 
 $somearray = explode(",",$somestring); foreach($somearray as $key=>$value) { $otherarray[$key+1] = $value; } 

хорошо его грязный, но это не то, что php для …

Нейт почти имел это, но нуждался в временной переменной:

 $someArray = explode(",",$myString); $tempArray = array(); foreach($someArray as $key=>$value) { $tempArray[$key+1] = $value; } $someArray = $tempArray; 

пример кода

 $array = array('a', 'b', 'c', 'd'); $flip = array_flip($array); foreach($flip as &$element) { $element++; } $normal = array_flip($flip); print_r($normal); 

Попробуйте это, довольно забавное решение: P

EDIT: используйте это вместо этого.

 $array = array('a', 'b', 'b', 'd'); $new_array = array(); $keys = array_keys($array); for($i=0; $i<count($array); $i++) { $new_array[$i+1] = $array[$i]; } print_r($new_array);