1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
<?php namespace Automattic\WooCommerce\StoreApi\Utilities;
/** * ArrayUtils class used for custom functions to operate on arrays */ class ArrayUtils { /** * Join a string with a natural language conjunction at the end. * * @param array $array The array to join together with the natural language conjunction. * @param bool $enclose_items_with_quotes Whether each item in the array should be enclosed within quotation marks. * * @return string a string containing a list of items and a natural language conjuction. */ public static function natural_language_join( $array, $enclose_items_with_quotes = false ) { if ( true === $enclose_items_with_quotes ) { $array = array_map( function ( $item ) { return '"' . $item . '"'; }, $array ); } $last = array_pop( $array ); if ( $array ) { return sprintf( /* translators: 1: The first n-1 items of a list 2: the last item in the list. */ __( '%1$s and %2$s', 'woocommerce' ), implode( ', ', $array ), $last ); } return $last; }
/** * Check if a string contains any of the items in an array. * * @param string $needle The string to check. * @param array $haystack The array of items to check for. * * @return bool true if the string contains any of the items in the array, false otherwise. */ public static function string_contains_array( $needle, $haystack ) { foreach ( $haystack as $item ) { if ( false !== strpos( $needle, $item ) ) { return true; } } return false; } }
|