Разнести массив и напечатать каждый элемент как элемент списка? - PullRequest
0 голосов
/ 24 августа 2018

У меня есть набор чисел в поле таблицы в базе данных, числа разделяются запятой '| 1 || 10 || 12 |'. Я пытаюсь сделать следующее:

$array =  explode('|', $set_of_numbers);

ответ

["","1","","10","","12",""]

Мне нужно так

["1","10","12"]

как можно сделать спасибо за ранее

Ответы [ 5 ]

0 голосов
/ 24 августа 2018

Вы также можете использовать регулярное выражение:

<?php

$a = '|1||10||12|';
$matches = [];
preg_match_all('/(\d+)/', $a, $matches);
var_dump($matches[1]);

http://php.net/manual/en/function.preg-match-all.php

0 голосов
/ 24 августа 2018

Можете ли вы попробовать это,

$set_of_numbers = '|1||10||12|';
$array = array_filter(explode("|", $set_of_numbers), function($value) { return $value!== ''; });

Это будет работать, вы можете использовать это, я проверял это на phpfiddle.

0 голосов
/ 24 августа 2018

Попробуй это.Это будет работать.

$set_of_numbers = '|1||10||12|';
$array =  explode('|', $set_of_numbers);
$array = array_filter($array);
0 голосов
/ 24 августа 2018

Используйте это, функция array_filter() удалит ваши пустые / пустые значения из массива и вернет массив, который имеет только значения.

$set_of_numbers = '|1||10||12|';
$array =  array_filter(explode('|', $set_of_numbers));
0 голосов
/ 24 августа 2018

Попробуйте это

$array = trim($array, '|');
$array = explode('||', $set_of_numbers);
...