$(this).parents('.portfolio')
function parents(el, selector) {
const p = [];
while ((el = el.parentNode) !== document && el) {
(!selector || el.matches(selector)) && p.push(el);
}
return p;
}
parents(this, '.portfolio')
$(this).parent('.portfolio')
this.parentNode.classList.contains('portfolio') ? this.parentNode : null
$(this).children('.portfolio')
[...this.children].filter(n => n.classList.contains('portfolio'))
// или
Array.prototype.filter.call(this.children, n => n.matches('.portfolio'))
// или
this.querySelectorAll(':scope > .portfolio')
$(this).find('.portfolio')
this.querySelectorAll('.portfolio')
$(this).next('.portfolio')
(el => el && el.matches('.portfolio') ? el : null)(this.nextElementSibling)
<?php
if($_FILES) {
print_r($_FILES);
die();
}
?>
<html>
<body>
<form method="POST" enctype="multipart/form-data">
<input type="file" name="file[]" multiple>
<button type="submit">LOAD</button>
</form>
</body>
</html>
Array
(
[file] => Array
(
[name] => Array
(
[0] => 6FYITcA2Grs.jpg
[1] => 7Vbe6k311ns (1).jpg
)
[type] => Array
(
[0] => image/jpeg
[1] => image/jpeg
)
[tmp_name] => Array
(
[0] => /private/var/folders/7r/hm0mck8s795dmctppqh7bgwm0000gn/T/phpAS3jPp
[1] => /private/var/folders/7r/hm0mck8s795dmctppqh7bgwm0000gn/T/phpfkqzQa
)
[error] => Array
(
[0] => 0
[1] => 0
)
[size] => Array
(
[0] => 278560
[1] => 50086
)
)
)
$oldTime = strtotime('10:30');
$newTime = date("H:i", strtotime('+10 minutes', $oldTime));
Есть массив значений, мне требуется выводить элементы массива пока он не кончится,
$arr = array('Apple', 'Grape', 'Lemon');
foreach($arr as $znatchenie) {
echo "$znatchenie<br>";
}
echo 'Массив кончился.<br>';
for ($i = 0; $i < 10; $i++) {
foreach($arr as $znatchenie) {
echo "$znatchenie<br>";
}
echo 'Массив кончился. Продолжаем внешний цикл <br>';
}
for ($i = 0; $i < 10; $i++) {
echo $arr[$i] ?? 'Массив кончился. Продолжаем внешний цикл';
echo "<br>";
}