बस एक योजक है।
मुझे पता है कि यह पुराना है , लेकिन मैं एक समाधान जोड़ना चाहता था जिसे मैं नहीं देखता कि मैं खुद के साथ आया हूं। एक अलग समाधान के शिकार पर यह सवाल मिला और बस सोचा, "ठीक है, जबकि मैं यहाँ हूँ।"
सबसे पहले, नील का जवाब अच्छा है और आप अपने पाश को चलाने के बाद उपयोग करने के लिए महान हैं, हालांकि, मैं एक ही बार में सभी काम करना पसंद करूंगा। बेशक, मेरे विशिष्ट मामले में मुझे इस सरल उदाहरण से अधिक काम करना था , लेकिन विधि अभी भी लागू होती है। मैंने देखा कि एक जोड़े ने अन्य लोगों को कहां सुझाव दिया foreachहै, हालांकि, यह अभी भी जानवर की प्रकृति के कारण काम के बाद आपको छोड़ देता है । आम तौर पर मैं सरल चीजें सुझाता हूं foreach, हालांकि, इस मामले में, अच्छे पुराने जमाने के for loopतर्क को याद रखना सबसे अच्छा है। बस उपयोग करें i! उचित सूचकांक बनाए रखने के लिए, iएक ऐरे आइटम को हटाने के बाद बस से घटाएं ।
यहाँ मेरा सरल, काम करने का उदाहरण है:
$array = array(1,2,3,4,5);
for ($i = 0; $i < count($array); $i++) {
if($array[$i] == 1 || $array[$i] == 2) {
array_splice($array, $i, 1);
$i--;
}
}
उत्पादन होगा:
array(3) {
[0]=> int(3)
[1]=> int(4)
[2]=> int(5)
}
इसके कई सरल कार्यान्वयन हो सकते हैं। उदाहरण के लिए, मेरे सटीक मामले को बहुआयामी मूल्यों के आधार पर सरणी में नवीनतम आइटम की आवश्यकता है। मैं आपको दिखाता हूँ कि मेरा क्या मतलब है:
$files = array(
array(
'name' => 'example.zip',
'size' => '100000000',
'type' => 'application/x-zip-compressed',
'url' => '28188b90db990f5c5f75eb960a643b96/example.zip',
'deleteUrl' => 'server/php/?file=example.zip',
'deleteType' => 'DELETE'
),
array(
'name' => 'example.zip',
'size' => '10726556',
'type' => 'application/x-zip-compressed',
'url' => '28188b90db990f5c5f75eb960a643b96/example.zip',
'deleteUrl' => 'server/php/?file=example.zip',
'deleteType' => 'DELETE'
),
array(
'name' => 'example.zip',
'size' => '110726556',
'type' => 'application/x-zip-compressed',
'deleteUrl' => 'server/php/?file=example.zip',
'deleteType' => 'DELETE'
),
array(
'name' => 'example2.zip',
'size' => '12356556',
'type' => 'application/x-zip-compressed',
'url' => '28188b90db990f5c5f75eb960a643b96/example2.zip',
'deleteUrl' => 'server/php/?file=example2.zip',
'deleteType' => 'DELETE'
)
);
for ($i = 0; $i < count($files); $i++) {
if ($i > 0) {
if (is_array($files[$i-1])) {
if (!key_exists('name', array_diff($files[$i], $files[$i-1]))) {
if (!key_exists('url', $files[$i]) && key_exists('url', $files[$i-1])) $files[$i]['url'] = $files[$i-1]['url'];
$i--;
array_splice($files, $i, 1);
}
}
}
}
उत्पादन होगा:
array(1) {
[0]=> array(6) {
["name"]=> string(11) "example.zip"
["size"]=> string(9) "110726556"
["type"]=> string(28) "application/x-zip-compressed"
["deleteUrl"]=> string(28) "server/php/?file=example.zip"
["deleteType"]=> string(6) "DELETE"
["url"]=> string(44) "28188b90db990f5c5f75eb960a643b96/example.zip"
}
[1]=> array(6) {
["name"]=> string(11) "example2.zip"
["size"]=> string(9) "12356556"
["type"]=> string(28) "application/x-zip-compressed"
["deleteUrl"]=> string(28) "server/php/?file=example2.zip"
["deleteType"]=> string(6) "DELETE"
["url"]=> string(45) "28188b90db990f5c5f75eb960a643b96/example2.zip"
}
}
जैसा कि आप देखते हैं, मैं बंटवारे से पहले $ i को हेरफेर करता हूं क्योंकि मैं वर्तमान आइटम के बजाय पिछले को हटाने की मांग कर रहा हूं।