Как создать массив такого вида?

177
27 сентября 2018, 22:10

Вывожу нужные мне записи из базы:

$db = $mysqli->query("SELECT * FROM `deal` WHERE DATE(date_open) BETWEEN '2018-07-10' AND '".date('Y-m-d')."'");
if ($db) while ($deal = $db->fetch_assoc()) {
   echo $deal['date_open'];
}

Получаю такой список:

2018-07-13
2018-07-13
2018-07-15
2018-07-15
2018-07-19
2018-07-19
2018-07-19

Мне нужно объединить их по дате. Хочу получить такой массив:

0 - [1], [2]
1 - [3], [4]
и так далее

где 1 2 3 4 это id записи ( $deal['id'] )

Буду благодарен за помощь.

Answer 1
$deal = array(
    ['date_open' => '2018-07-13', 'id' => 1],
    ['date_open' => '2018-07-13', 'id' => 2],
    ['date_open' => '2018-07-15', 'id' => 3],
    ['date_open' => '2018-07-15', 'id' => 4],
    ['date_open' => '2018-07-19', 'id' => 5],
    ['date_open' => '2018-07-19', 'id' => 6],
    ['date_open' => '2018-07-19', 'id' => 7]
);
$result = array();
foreach ($deal as $value) {
    $result[$value['date_open']][] = $value['id'];
}
$result = array_map(function($v) { return '[' . implode('], [', $v) . ']'; }, $result);
var_dump(array_values($result));

Результат:

array(3) {
  [0]=> "[1], [2]"
  [1]=> "[3], [4]"
  [2]=> "[5], [6], [7]"
}
Answer 2

Мне нужно объединить их по дате.

Вот так можно объединить не теряя, самих дат:

$array = array(
    ['date_open' => '2018-07-13', 'id' => 1],
    ['date_open' => '2018-07-13', 'id' => 2],
    ['date_open' => '2018-07-15', 'id' => 3],
    ['date_open' => '2018-07-15', 'id' => 4],
    ['date_open' => '2018-07-19', 'id' => 5],
    ['date_open' => '2018-07-19', 'id' => 6],
    ['date_open' => '2018-07-19', 'id' => 7]
);
$res = [];
foreach($array as $k => $d){
    $res[$d['date_open']][] = $d['id'];
}
print_r($res);

Результат:

Array
(
    [2018-07-13] => Array
        (
            [0] => 1
            [1] => 2
        )
    [2018-07-15] => Array
        (
            [0] => 3
            [1] => 4
        )
    [2018-07-19] => Array
        (
            [0] => 5
            [1] => 6
            [2] => 7
        )
)
READ ALSO
WordPress плагин wp-recall

WordPress плагин wp-recall

Подскажите, пожалуйста, по поводу плагина wp-recallХочу убрать вкладку регистрации, чтобы только можно было авторизироваться, но не могу найти,...

156
Автоматический подсчет

Автоматический подсчет

На странице есть форма с 3 полями: Price, Amount, TotalКак сделать, чтобы после ввода Price и Amount, Total подсчитывался автоматически по какой-либо формуле?

177
Magento2 Client Side Less Compilation

Magento2 Client Side Less Compilation

при переключении на Client Side Less Compilation сайт упал

178
Как центрировать текст в phpExcel

Как центрировать текст в phpExcel

Нужно в объедененном поле сделать текст по центру не только относительно левого/правого края, но и относительно верха/низаПример как должно...

191