2017-09-21 7 views
0

から最初の2 PHPのオブジェクトを削除し、私のコードは、以下のように私はPHPの配列から最初の2のオブジェクトを削除したいのです配列

print_r($available_methods); 

出力:私は最初の2列を削除したい

Array ( 
[free_shipping:5] => WC_Shipping_Rate Object ([id] => free_shipping:5 [label] => International Free [cost] => 0.00 [taxes] => Array () [method_id] => free_shipping [meta_data:WC_Shipping_Rate:private] => Array ([Items] => Portsea Polo - 2018 × 1)) 

[flat_rate:4] => WC_Shipping_Rate Object ([id] => flat_rate:4 [label] => International Regular [cost] => 34 [taxes] => Array () [method_id] => flat_rate [meta_data:WC_Shipping_Rate:private] => Array ([Items] => Portsea Polo - 2018 × 1)) 

[per_product] => WC_Shipping_Rate Object ([id] => per_product [label] => Express shipping [cost] => 9.00 [taxes] => Array () [method_id] => per_product [meta_data:WC_Shipping_Rate:private] => Array ()) 
) 

最後のものだけを使用します。

+0

をあなただけの変数に最後のものをピックアップしていない理由は? –

+0

私は何度も使用しなければならないので、最初は設定したくないのです。 –

+1

はい、最後のものを選んでもう一度入れてください。 –

答えて

1

unset()

あなたは単純に未設定の最初の2つの指標値は、キーが変更されないことができれば試してみてください。

unset($available_methods["free_shipping:5"]); 
unset($available_methods["flat_rate:4"]); 

しかし、あなたの状況に適している方法は間違いありません。

http://php.net/manual/en/function.unset.php


array_pop()

他の変数の設定を解除するための代替array_popを使用しています。私は角括弧配列に戻ってそれを置く[]はそれを包ん

$available_methods = [array_pop($available_methods)]; 

注意してください。

もし配列に気にしないのであれば、これらのシンボルをドロップするだけで、それ自身の変数になります。

$available_methods = array_pop($available_methods); 

array_pop()一つの要素によって アレイを短く、アレイの最後の値をポップし、返します。この形式では

、これが最後のインデックスからのデータで完全に既存のアレイを上書きしますが、あなたが同様に存在して元のデータを保持することができますので、あなただけのように簡単に別の変数にそれを救うことができます。 array_pop()

詳しい情報は、常に正確な指標だ場合、それがさらに簡単

を得ることができ、そしてそのインデックスは常にあなたが非常に簡単に、同じことができ命名されphp manual


で見つけることができますそのインデックスを自分の変数にプルするだけです。

$available_methods = [$available_methods['per_product']]; //to keep it in an array 
$available_methods = $available_methods['per_product']; //to keep just the variable 

注:あなたは5未満PHPのバージョンを実行している場合。4(どちらが、あなたがしている場合、あなたは間違いなく、新しいバージョンにアップグレードする必要があります)、短い配列の構文がサポートされておらず、array()

http://php.net/manual/en/language.types.array.php

NOTEと交換する必要があります:これらのソリューションのすべておそらく非常にほぼ同じ性能を発揮するでしょう。実行するのにかかる時間に基づいて異なるものを選ぶことは、ほとんどの場合大したことではないマイクロ最適化と考えられます。どのように動作するのかを理解するのが最も簡単なものを選択するか、またはそれがどのように動作するかを知ることができるように最小限に理解しているものだけを選択してください。それは私がやることです:)

2

が、これは

unset($available_methods["free_shipping:5"]); 
unset($available_methods["flat_rate:4"]); 
+0

同じ出力を表示していない、同じ出力を表示しています –

+0

解決します:unset($ available_methods ['free_shipping:5']); unset($ available_methods ['flat_rate:4']); –

関連する問題