2016-08-17 2 views
1

Я знаю, как удалить что-то из массива, но в этом случае его немного отличается. Мой код, похоже, генерирует этот раздражающий элемент в массиве под названием «* items», я не уверен, как его удалить.PHP удалить элемент из массива

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

Мой код

В основном в моем коде я превратили объект в массив как этот

$accounts = Account::where('archive', false)->select('id', 'display_name')->get(); 

$accounts = (array) $accounts; 

Я 100% уверен, что его отношение к этому. есть способ удалить элемент «* items» из массива?

Я попытался

array_pop($array); 

это не работает для меня это просто убрали последний пункт перед «* пункт»

unset($array['*item']); 

Это также не работает, то просто ничего не отменил.

Изображение

note the *items element being passed

EDIT

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

+2

Я предлагаю устранить проблему, не маскирующую симптом – RiggsFolly

+1

Изображение с вашей консоли javascript? Как преобразовать массив PHP в json? – Bert

+0

этот вид выглядит как форматированные данные json со значением '* items', являющимся массивом. Если вы отключите/удалите, то эти значения тоже исчезнут – RamRaider

ответ

0

У этого объекта (array) может возникнуть странное поведение. Вы можете попробовать toArray:

$accounts = Account::where('archive', false) 
    ->select('id', 'display_name') 
    ->get() 
    ->toArray(); 

Затем вы можете проверить результат с dd:

dd($accounts); 
+0

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

0

Неудачно я нашел ответ на этот вопрос сразу после его размещения ..

Вместо того, чтобы использовать следующие подвигов кода ...

$accounts = Account::where('archive', false)->select('id', 'display_name')->get(); 
$accounts = (array) $accounts; 

Я использовал

foreach($account in $accounts){ 
    $test = new \stdClass(); 
    $test = (array) $test; 
    $test[$index]['Revenue']  = (double) $account->revenue; 
    $test[$index]['Expense']  = (double) $account->expense; 
    $test[$index]['Profit']  = $account->sum; 
    $test[$index]['ID']   = $id; 
    $test[$index]['Account Name'] = $display_name; 
} 

это все еще сбивает с толку, однако, потому что ив попробовал сделать новый массив, а затем добавляя значения через это, но он не работал бы ..?

EDIT я полностью понимаю, что это очень ineffecient способ делать вещи, но им работать с крайним сроком, и это работает, если у вас есть что-нибудь добавить, пожалуйста! плохо просмотрите критику, когда у меня есть время, и, надеюсь, я смогу улучшить код с вашей помощью!

Смежные вопросы