Индекс массива PHP / сплайс

Я использую PHP 5.4 (и нет, я не могу перейти на что-то более новое). Я пытаюсь найти индекс элемента в массиве, но я почти уверен, что делаю что-то не так, потому что когда я вызываю array_splice (), я получаю недопустимую ошибку смещения строки.

Я запускаю запрос SQL, а затем помещаю каждую строку в массив. Затем я пытаюсь найти индекс одного из атрибутов строки. Когда я не использую array_splice и просто вставляю строки, у меня не возникает ошибок при выводе на печать определенных атрибутов каждой записи массива.


РЕДАКТИРОВАТЬ:

print_r (массив [I]):

Array ( [comment_id] => 0 [reply_to] => 0 [username] => user0 [comment] => comment0 )

Я хочу найти, где comment_id равно определенному значению, а затем вставить новую запись в массив [i + 1].


Соответствующий фрагмент кода PHP:

$comment_array = array();
if($result->num_rows > 0) {
while($row = $result->fetch_assoc()){
$new_sql = "SELECT * FROM comments WHERE reply_to = " . $row["comment_id"] . " AND reply_to != comment_id";
$new_result = $conn->query($new_sql);
//array_push($comment_array, $row);
if ($new_result->num_rows > 0) {
if($row["reply_to"] >= $row["comment_id"]){
array_push($comment_array, $row);
}

while($new_row = $new_result->fetch_assoc()) {
$index = -1;
foreach($comment_array as $key => $val){
if ($val['comment_id'] == $new_row["reply_to"]) {
$index = $key;
break;
}
}
if($index > -1){
array_splice($comment_array, $index, 0, $new_row);
} else {
array_push($comment_array, $new_row);
}
}
} else if($row["reply_to"] == $row["comment_id"]){
array_push($comment_array, $row);
}
}
}

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …