介绍
如果您是PHP VELP,则通常会降低为操纵绘画。而且,当您需要在桌子上做一个操作时,通常会使用foreach循环进行。但是,为什么您会脱离PHP功能?我要展示一些可以让您进行循环并显示您的意图ð
数组过滤器
他的名字很明确:如果您需要过滤表,则此功能是为此完成的。第一个参数,您通过表,第二个参数将是回调函数。从Flèche功能中,您甚至可以让自己单行进行。有点访问:
$foods = ['🍔', '🍔', '🍔', '🍕', '🍕'];
// retourne un tableau avec 3 délicieux burgers
array_filter($foods, fn ($food) => $food === '🍔');
// retourne un tableau avec 2 magnifiques pizzas
array_filter($foods, fn ($food) => $food === '🍕');
ð€提示:如果要删除桌子中的空白老年人,则可以转到php strlen的功能:array_filter($ array,strlen'')
数组地图
CAF与JavaScript中的相同:如果您想通过应用功能来改变表的版本,则在这里发生汽车。让我们说,您不喜欢汉堡,您想要5位漂亮的吉诺厨师的首领,所以使用Flôche功能,只需这样做:
array_map(fn () => '🍕', $foods);
Array_map的另一个很酷的情况,CAF可以同时在两个表(或 +!)上进行:
$firstnames = ['Bruce', 'Alfred'];
$lastnames = ['Wayne', 'Pennyworth'];
$fullnames = array_map(function ($firstname, $lastname) {
return $firstname . ' ' . $lastname;
}, $firstnames, $lastnames);
阵列减少
要更改汉堡和比萨饼(但不太ð),我们将继续进行一个更具体的例子。想象一个购买篮子,我们可以在其中放产品。为此:购物车课和产品课。在ShoppingCart中,我添加了一个计算机thode,可以制作每种产品的价格。我们没有制作循环,而是使用array_reduce:
class ShoppingCart
{
public function __construct(
public array $products,
public float $total = 0
) {
$this->total = $this->computeTotal();
}
private function computeTotal(): float
{
return array_reduce($this->products, fn ($acc, $product) => $acc += $product->price, 0);
}
}
class Product
{
public function __construct(
public string $name,
public float $price
) {}
}
$burger = new Product(name: 'burger', price: 10.00);
$pizza = new Product(name: 'pizza', price: 15.00);
$shoppingCart = new ShoppingCart([$burger, $pizza]);
$total = $shoppingCart->total;
那是如何工作的?第一个参数是我们的产品表。然后,我们有一个回调函数,该函数采用两个参数:此处产生的变量和当前值。第三个参数CAF是初始化我之前所说的变量(其中包含的变量)。每个都是,我们降低了产品的价格,并添加到$ acc。返回的价值将是所有价格的增加。超级实用!如果表为空,则为0,将返回ð
阵列步行
与完成的维持一样实用。 array_walk的工作原理类似于array_map,但防御咖啡厅是array_walk具有直接修改表值的可能性。这意味着您不必分配变量。实际上,如果该函数的第一个参数已通过奖励传递,则原始表的值将更改。
在此示例中,Array_walk将浏览表并在每个标题上应用UCWords()函数。由于我的匿名功能通过奖励重新出现了第一个参数,因此$电影中包含的标题将得到很好的修改。
$movies = ['the lord of the rings', 'the guardian of the galaxy'];
$titleCase = fn (&$title, $key) => $title = ucwords($title);
array_walk($movies, $titleCase);
结论
您将在表上看到或修订了我的4个功能,这些功能在许多情况下可能是实用的。文档中有一个美丽的三折(PHP: Fonctions sur les tableaux)。如果您必须在桌子上完成,而不是网站不看看看,也许您将能够使用foreach的使用。我并不是说汽车很糟糕,但也许更简洁,根据应用功能,我们可以理解意图。
您可以直接在这里找到这篇文章 - surlescocottes.vercel.app