반응형
phpredis 확장에서는 list에 push를 한번에 여러 개 사용하는 방법을 소개하지 않지만, 사실 lPush와 rPush는 push를 여러 개 지원하는 것으로 문서에 소개되어 있습니다.
lPush - Prepend one or multiple values to a list
rPush - Append one or multiple values to a list
용법도 간단합니다. 예제 코드를 보십시오
<?php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->del('foo');
var_dump($redis->lPush('foo', 'aaaa', 'bbbb', 'cccc', 'dddd'));
print_r($redis->lRange('foo', 0, -1));
실행 결과:
[root@localhost php]# php lpush.php
int(4)
Array
(
[0] => dddd
[1] => cccc
[2] => bbbb
[3] => aaaa
)
[root@localhost php]#
그러나 우리는 lPush를 하나의 배열로 원하는 경우가 더 많습니다. lPush는 직접 입력 배열을 지원하지 않습니다. 그러나 우리는 다음 두 가지 방법을 사용할 수 있습니다.
call_user_func_array를 사용하면 배열이 매개 변수 목록의 속성으로 사용될 수 있습니다.
<?php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->del('foo');
var_dump(call_user_func_array([$redis, 'lPush'], ['foo', '1111', '2222', '3333', '4444']));
print_r($redis->lRange('foo', 0, -1));
실행 결과:
[root@localhost php]# php lpush.php
int(4)
Array
(
[0] => 4444
[1] => 3333
[2] => 2222
[3] => 1111
)
[root@localhost php]#
2. php5.6+에서 지원하는 가변 인자를 사용하여 배열 앞에 '...' 을 추가하여 배열이 함수로 사용되는 인자의 목록을 만듭니다.
You can also use ... when calling functions to unpack an array or Traversable variable or literal into the argument list:
코드 예:
<?php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->del('foo');
var_dump($redis->lPush('foo', ...['AAAA111', 'BBBB222', 'CCCC333', 'DDDD444']));
print_r($redis->lRange('foo', 0, -1));
실행 결과:
[root@localhost php]# php lpush.php
int(4)
Array
(
[0] => DDDD444
[1] => CCCC333
[2] => BBBB222
[3] => AAAA111
)
[root@localhost php]#
일반적으로 추천하는 두 번째 방식은 간단명료하다
반응형
'개발 꿀팁 > PHP' 카테고리의 다른 글
PHP 백도어 히든 테크닉 (0) | 2022.07.06 |
---|---|
php PDO 접속 가능 여부 판단 방법 (0) | 2022.07.06 |
PHP가 난수를 생성하는 몇 가지 방법 (0) | 2022.07.06 |
자체 PHP MVC 프레임워크 개발 (1) (0) | 2022.07.06 |
php QR코드 생성 3가지 방법 (0) | 2022.07.05 |