Exemplo n.º 1
0
 /**
  * 配列を再帰的に上書きする
  */
 public function testAmr()
 {
     $a = array('a1', 'a2', 'a3');
     $b = array('b1', 'b2');
     // 1次元配列
     $this->assertEquals(array('b1', 'b2', 'a3'), amr($a, $b));
     // 2次元配列
     $b = array(array('b1'));
     $this->assertEquals(array(array('b1'), 'a2', 'a3'), amr($a, $b));
     // 3次元配列
     $a = array(array('a1'), 'a2', 'a3');
     $b = array(array(array('b1')));
     $this->assertEquals(array(array(array('b1')), 'a2', 'a3'), amr($a, $b));
 }
Exemplo n.º 2
0
/**
 * 配列を再帰的に上書きする
 * 二つまで
 * @param	array	$a
 * @param	array	$b
 * @return	array
 */
function amr($a, $b)
{
    foreach ($b as $k => $v) {
        if (is_array($v)) {
            if (isset($a[$k])) {
                $a[$k] = amr($a[$k], $v);
                continue;
            }
        }
        if (!is_array($a)) {
            $a = array($a);
        }
        $a[$k] = $v;
    }
    return $a;
}
Exemplo n.º 3
0
function Params2b64($params)
{
    amr('utf8_encode', $params);
    #if utf8 file, or utf8 string, don't have to encode i
    $params = json_encode($params);
    return base64_encode($params);
}