info

category : PHP
[PHP]配列の値だけの配列を作る  @ PHP 2014年2月22日
配列の値だけの配列を作る
$data=array();
$data['jack']=array( 'gender'=>'male', 'size'=>198, 'status'=>array('QK',32,'skyhigh','log'=>array('20120303','20120529','20121111') ) );
$data['jeff']=array( 4,87,8,4,3 );
$data['pole']=array( 'address'=>'earth', 'phone number'=>'39028502753' );

echo '<pre>';
var_dump( getValuesByArray($data) );
echo '</pre>';

function getValuesByArray($targetArray){
    if( !is_array($targetArray) ){
        return array($targetArray);
    }
    $tmp=array();
    foreach($targetArray as $key => $value){
        $tmp=array_merge($tmp, getValuesByArray($value) );
    }
    return $tmp;
}


出力結果
array(15) {
  [0]=>
  string(4) "male"
  [1]=>
  int(198)
  [2]=>
  string(2) "QK"
  [3]=>
  int(32)
  [4]=>
  string(7) "skyhigh"
  [5]=>
  string(8) "20120303"
  [6]=>
  string(8) "20120529"
  [7]=>
  string(8) "20121111"
  [8]=>
  int(4)
  [9]=>
  int(87)
  [10]=>
  int(8)
  [11]=>
  int(4)
  [12]=>
  int(3)
  [13]=>
  string(5) "earth"
  [14]=>
  string(11) "39028502753"
}

サンプル
[CakePHP 2.x]テーブルのカラム名を取得  @ PHP , CakePHP 2.x 2013年11月16日
テーブルのカラム名を取得
$this->Model->getColumnTypes();

Controller
$columnTypes=$this->SystemTest->getColumnTypes();
$columnNames=array_keys($columnTypes);
$this->set('columnTypes', $columnTypes);
$this->set('columnNames', $columnNames);

View
columnTypes<br/>
<?php
$tmp=var_export($columnTypes,true);
echo str_replace("\n", "<br/>", $tmp);
?>
<br/><br/>
columnNames<br/>
<?php
$tmp=var_export($columnNames,true);
echo str_replace("\n", "<br/>", $tmp);
?>

Sample
[PHP x MySQL]MySQLを使う  @ PHP , MySQL 2013年10月19日
MySQLを使う
$default = array(
	'host' => 'database host',
	'user' => 'user ID',
	'password' => 'password',
	'database' => 'database name',
	'encoding' => 'utf8',
);
$link = mysql_connect($default['host'], $default['user'], $default['password']);

if (!$link) {
    echo '接続失敗です。'.mysql_error();
    die();
}
echo "接続成功<br/><br/>";

$db_selected = mysql_select_db($default['database'], $link);
if (!$db_selected){
    echo 'データベース選択失敗です。'.mysql_error();
    die();
}
echo "データベース選択成功<br/><br/>";

mysql_set_charset($default['encoding']);
$result = mysql_query('SELECT * FROM test00');
if (!$result) {
    echo 'クエリーが失敗しました。'.mysql_error();
    die();
}

$tmp=array();
while ($row = mysql_fetch_assoc($result)) {
    $tmp[]=$row;
}
var_dump($tmp);

$close_flag = mysql_close($link);
echo '切断に'.( ($close_flag)?'成功':'失敗' ).'しました。';
[PHP]ディレクトリを沢山作る  @ PHP 2013年10月18日
mkDir('/home/users/2/web/blog/log/2012/10/09',0777,true);

もしくは

$targetDir=’/home/users/2/web/blog/log/2012/10/09′;
$baseDir=’log’;
とすると
/home/users/2/web/blog/log/2012
/home/users/2/web/blog/log/2012/10
/home/users/2/web/blog/log/2012/10/09
をmkdirする
function mkDirs($targetDir,$baseDir){
    $tmp=explode('/', $targetDir);
    $tmpDir='';
    $mkflg=false;
    $failedDir='';
    foreach ($tmp as $key => $v) {
    	$tmpDir.=$v.'/';
    	if(!$mkflg && $v===$baseDir){
    		$mkflg=true;
    		continue;
    	}
    	if( $mkflg && !file_exists($tmpDir) ){
    		if( !mkdir($tmpDir,0777) ){
		      $failedDir=$tmpDir;
    		      break;
    		}
    	}
    }
    return $failedDir;
}
[PHP x SQLite3]PHPでSQLite3 #3データ取得(SELECT)  @ PHP , SQLite3 2013年10月11日
PHPでSQLite3 #3データ取得(SELECT)
$tableName="access";
$sql="SELECT id,name,cnt FROM $tableName WHERE name='{$name}' ORDER BY cnt ASC";
$result=$db->query($sql);
$tmp=[];
while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
	$tmp[]=$row;
}
echo json_encode($tmp);
$db->close();

データ重複しないように取得
$sql="SELECT DISTINCT name FROM $tableName";
$result=$db->query($sql);
if($result===FALSE){
	$db->close();
	echo $message;
	exit;
}
$tmp=[];
while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
	$value=$row['name'];
	$tmp[]=$value;
}
echo json_encode($tmp);