2016-08-17 29 views
1

私は配列から何かを削除する方法を知っていますが、この場合は少し異なります。私のコードは "* items"という配列のこの厄介な項目を生成するようですが、削除する方法はわかりません。PHPは配列から項目を削除します

私のアプリケーションでは、配列内のすべてのデータが視覚的に表示されているため、この項目が原因で空白が残っているため、削除が必要です。

私のコード

基本的に私のコードで私はそのはこれを行うには100%確信しているこの

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

$accounts = (array) $accounts; 

などのオブジェクトを配列に変換しました。配列から「* items」アイテムを削除する方法はありますか?私はそれだけで「*項目」前の最後の項目を削除

array_pop($array); 

これが私のために動作しませんでしたが試した

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

また、これは、動作しませんでした何も設定を解除していませんでした。

ピクチャー

note the *items element being passed

EDIT

私はここに誰か他の人のコードに取り組んでいるとランダム機能と関数の多くがあり、全体を書いて説明しますスクリプトは愚かな時間がかかるので、私はを試した私は必要と思われるものを含める。

+2

私は症状を隠さないように問題を解決することをお勧めします – RiggsFolly

+1

画像はあなたのjavascriptコンソールからですか? PHP配列をjsonにどのように変換しますか? – Bert

+0

は、 '* items'の値が配列であるjson形式のデータのように見えます。設定を解除/削除すると、これらの値も消えてしまいます – RamRaider

答えて

0

(array)でオブジェクトをキャスティングすると、ここで奇妙な動作が発生することがあります。あなたはtoArrayを試みることができる:

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

次にあなたがddで結果を確認できます。

ぎこちなく
dd($accounts); 
+0

ああ私は..これは正解であろうが、唯一の問題は前にオブジェクトである必要があるアカウントを使用している方法です。私はこのIMのためのコードを書いていませんでしたが、これを変更しようとしていますが、これは配列をオブジェクトにするのではなく、以前の開発者がどうしてそんなに混乱したのか混乱した –

0

私はすぐにそれを掲示した後、これに対する答えを見つけました。..

代わりに以下のものを使用して、コードの功績...

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

私は、IVEは新しい配列を作ってみましたし、そのを通じて値を追加することが、それは仕事wouldntのため、これはまだしかし、混乱して

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物事のやり方が、イム締め切りと協力し、これが動作しています!私は時間があり、うまくいけば私はあなたの助けを借りてコードを改善することができます批判を見直す!

関連する問題