Page 1 of 1

Качване на снимки

Posted: Wed Mar 13, 2019 4:53 pm
by pro12
Това ми е в html формата [html] <input type="file" name="foto[]" />
<input type="file" name="foto[]" />
[/html]
Получавам масив [php]Array ( [name] => Array ( [0] => [1] => hd car wallpapers for mobile (5).jpg [2] => [3] => [4] => ) [type] => Array ( [0] => [1] => image/jpeg [2] => [3] => [4] => ) [tmp_name] => Array ( [0] => [1] => H:\xamp\tmp\php1645.tmp [2] => [3] => [4] => ) [error] => Array ( [0] => 4 [1] => 0 [2] => 4 [3] => 4 [4] => 4 ) [size] => Array ( [0] => 0 [1] => 122640 [2] => 0 [3] => 0 [4] => 0 ) )
[/php]
Обработвам масива.
[php]
$img = array_keys($this->images);

for ($i = 0; $i < count($this->images['name']); $i++) {
foreach ($img as $key) {
if ($this->images[$key][$i] != '') {създавам нов масив без празните ключове.
$this->paramimages[$i][$key] = $this->images[$key][$i];
}
}
} [/php]
Ето новия масив.
[php]Array ( [0] => Array ( [error] => 4 ) [1] => Array ( [name] => hd car wallpapers for mobile (5).jpg [type] => image/jpeg [tmp_name] => H:\xamp\tmp\phpC3A6.tmp [size] => 122640 ) [2] => Array ( [error] => 4 ) [3] => Array ( [error] => 4 ) [4] => Array ( [error] => 4 ) )
[/php]
Премахвам error
[php]foreach ($this->paramimages as $thisArrIndex=>$subArray)
{
if (array_key_exists('error', $subArray )) {
if ( $subArray['error'] == "4" )
{
unset($this->paramimages[$thisArrIndex]);
}

}
}
[/php]
Краен резултат
[php]Array ( [1] => Array ( [name] => hd car wallpapers for mobile (5).jpg [type] => image/jpeg [tmp_name] => H:\xamp\tmp\php4C94.tmp [size] => 122640 ) )
[/php]

Как да преименувам масива за да е 0 а не 1?

Posted: Wed Mar 13, 2019 5:24 pm
by dakata__92
Използвай
[php]
$array = array_values($array);
[/php]

или

[php]
$arr = array_map('array_values', $arr);
[/php]

Posted: Wed Mar 13, 2019 6:50 pm
by pro12
Благодаря!
Мога ли да стигна до този резултат с по малко цикли? [php]Array ( [1] => Array ( [name] => hd car wallpapers for mobile (5).jpg [type] => image/jpeg [tmp_name] => H:\xamp\tmp\php4C94.tmp [size] => 122640 ) )
[/php]

Posted: Wed Mar 13, 2019 8:01 pm
by dakata__92
pro12 wrote:Благодаря!
Мога ли да стигна до този резултат с по малко цикли? [php]Array ( [1] => Array ( [name] => hd car wallpapers for mobile (5).jpg [type] => image/jpeg [tmp_name] => H:\xamp\tmp\php4C94.tmp [size] => 122640 ) )
[/php]
Принципно, да! В случая обаче използването на така структурираните от теб цикли би било по-бързо спрямо използването на някои вградени функции за обработване на масиви в php. Може да си оптимизираш кода и променливите за да не пълниш излишно паметта. Функцията memory_get_peak_usage() ти дава информация за изпозването на паметта.

Posted: Wed Mar 13, 2019 8:36 pm
by pro12
dakata__92 wrote:
pro12 wrote:Благодаря!
Мога ли да стигна до този резултат с по малко цикли? [php]Array ( [1] => Array ( [name] => hd car wallpapers for mobile (5).jpg [type] => image/jpeg [tmp_name] => H:\xamp\tmp\php4C94.tmp [size] => 122640 ) )
[/php]
Принципно, да! В случая обаче използването на така структурираните от теб цикли би било по-бързо спрямо използването на някои вградени функции за обработване на масиви в php. Може да си оптимизираш кода и променливите за да не пълниш излишно паметта. Функцията memory_get_peak_usage() ти дава информация за изпозването на паметта.
Може ли да ми дадеш пример за оптииизация?