PHP는 Python의 목록 이해 구문과 동등합니까?
Python은 구문적으로 sweet list completions를 가지고 있습니다.
S = [x**2 for x in range(10)]
print S;
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
PHP에서는 루프를 실행해야 합니다.
$output = array();
$Nums = range(0,9);
foreach ($Nums as $num)
{
$out[] = $num*=$num;
}
print_r($out);
입수 방법:
어레이 ( [0] = > 0 [ 1 ] = > 1 [ 2 ] = > 4 [ 3 ] = > 9 [ 4 ] = 16 [ 5 ] = > 25 [ 6 ] = 36 [ 7 ] = > 49 [ 8 ] = 64 [ 9 ] > 81)
PHP에서 유사한 목록 이해 구문을 얻을 수 있는 방법이 있습니까?PHP 5.3의 새로운 기능으로 할 수 있는 방법이 있습니까?
감사합니다!
이런 거?
$out=array_map(function($x) {return $x*$x;}, range(0, 9))
이것은 PHP 5.3+에서 동작합니다.이전 버전에서는 array_map에 대한 콜백을 별도로 정의해야 합니다.
function sq($x) {return $x*$x;}
$out=array_map('sq', range(0, 9));
PHP 5.5는 목록 통합을 지원할 수 있습니다. 메일링 목록 공지사항을 참조하십시오.
- [PHP-DEV] PHP에 대한 통합 및 생성기 표현 목록 (2012년 6월 28일)
자세한 내용은 다음과 같습니다.
- 발전기가 당신을 위해 할 수 있는 일 (ircmaxell, 2012년 7월 23일) - 피보나치의 예가 있다.
- PHP 5.5의 외관 (NikiC, 2012년 7월 10일)
- 코멘트 요청: 제너레이터 (Wiki는 2012년 6월 5일 시작)
http://code.google.com/p/php-lc/ 또는 http://code.google.com/p/phparrayplus/ 를 참조해 주세요.
.NET에서는 Python의 "구문적으로 스위트리스트 통합"에 상당하는 것이 LINQ입니다.PHP에는 YaLinqo 라이브러리*를 포함한 여러 포트가 있습니다.구문론적으로는 일련의 기존 구성보다는 SQL에 가깝습니다.for
그리고.if
하지만 기능적으로는 비슷합니다.
$a = Enumerable::range(0, 10)->select('$v * $v');
이를 통해 콘솔에 출력할 수 있는 반복기가 생성됩니다.
var_dump($a->toArray()); // by transforming the iterator to an array
echo $a->toString(', '); // or by imploding into a string
또는 를 반복하여 사용합니다.foreach
:
foreach ($a as $i)
echo $i, PHP_EOL;
여기서,'$v * $v'
에 대한 지름길입니다.function ($v) { return $v * $v; }
이 라이브러리는 이를 지원합니다.안타깝게도 PHP는 닫힘에 대한 짧은 구문을 지원하지 않지만 이러한 "string lambdas"를 사용하여 코드를 더 짧게 만들 수 있습니다.
더 많은 방법이 있다.where
(if
등가)로 끝납니다.groupJoin
그룹화와 결합 변환을 수행합니다.
* 내가 개발한
언급URL : https://stackoverflow.com/questions/1266911/does-php-have-an-equivalent-to-pythons-list-comprehension-syntax
'itsource' 카테고리의 다른 글
Java를 사용하여 Selenium WebDriver에서 마우스 오버 기능을 수행하는 방법 (0) | 2022.09.12 |
---|---|
XAMPP - 테이블 'C:\xampp\tmp\#sql3a10_4_4'에 대한 권한 문제.MAI' (0) | 2022.09.12 |
배열에서 선택한 모든 확인란 가져오기 (0) | 2022.09.12 |
각 유형에서 가장 큰 행 선택 방법 (0) | 2022.09.12 |
원칙 2에서 엔티티를 다른 행으로 다시 저장하는 방법 (0) | 2022.09.12 |