PHP Classes

File: example.php

Recommend this page to a friend!
  Classes of Rafael Martin Soto   PHP CSV Library for Row Data Analysis   example.php   Download  
File: example.php
Role: Example script
Content type: text/plain
Description: Example script
Class: PHP CSV Library for Row Data Analysis
Extract column types from arrays with tabular data
Author: By
Last change: Add files via upload
Date: 2 years ago
Size: 7,036 bytes
 

Contents

Class file image Download
<?php
/** example.php of use row_math_ml_csv.class.php class
 *
 * Class for manage rows structures in csv
 * It clean values and prepare values properties
 *
 * Used normally for Neural Networks, Deep learning, Machine learning, Intelligence Artificial, ....
 *
 *
 * @author Rafael Martin Soto
 * @author {@link https://www.inatica.com/ Inatica}
 * @blog {@link https://rafamartin10.blogspot.com/ Blog Rafael Martin Soto}
 * @since September 2021
 * @version 1.0.0
 * @license GNU General Public License v3.0
*/

require_once 'row_math_ml_csv.class.php';

// Un normal uses, the data will be from .csv
// In this example we use an array of data as the same way it was .csv data

$arr_values = [
                [
'10', ' "dirty string enclosed by double quotes" ', '0', 'This is a string text', '2021-10-10', '192.168.1.1', '', 'null', null, 'na', 'nan', '-', 'string with, comma'],
                [
'-20', 'test string', '-11.32', 'This is a string text', '2021-10-11', '192.168.1.2', '', 'null', null, 'na', 'nan', '-', ''],
                [
'2.2', null, 'na', 'This is a string text', '2021-10-12', '192.168.1.3', '', 'null', null, 'na', 'nan', '-', '']
            ];
           
$row_math_ml_csv = new row_math_ml_csv( $arr_values[0] ); // Get first row values

echo 'Type of col 4: '.$row_math_ml_csv->cols[4]->type().PHP_EOL; // Echo 'date'

echo 'Col 4 is Date?: ';

if(
$row_math_ml_csv->cols[4]->is('date') ){
    echo
'true';
} else{
    echo
'false';
    }
   
echo
PHP_EOL;
echo
PHP_EOL;

unset(
$row_math_ml_csv );





// Simulate loop reading .csv and reuse the class structure

$num_cols = count( $arr_values[0] );

$row_math_ml_csv = new row_math_ml_csv( array_fill(0, $num_cols, '0') ); // Initialize it with empty values

// Echo all available properties
echo PHP_EOL;
echo
'Properties. Names & default values:'.PHP_EOL;

// Get array of properties of one row. No matter what row is. All have the same type of properties
foreach($row_math_ml_csv->cols[0]->get_structure() as $key_name => $value_propertie ){
    echo
$key_name.' => '.$value_propertie.PHP_EOL;
}

echo
PHP_EOL;
echo
PHP_EOL;
echo
PHP_EOL;

foreach(
$arr_values as $row_key => $row_values){
   
// Set the values of the row reusing the class
   
$row_math_ml_csv->re_set_data_struct( $row_values );
   
    echo
'Row id['.$row_key.']. Original Values: ';
    echo
implode( ',', $row_values );
   
   
$arr_cleaned_values = [];
    foreach(
$row_values as $key_value => $value){
       
$arr_cleaned_values[] = $row_math_ml_csv->cols[ $key_value ]->value();
    }
   
    echo
PHP_EOL;
   
    echo
'Row id['.$row_key.']. Cleaned Values: ';
    echo
implode( ',', $arr_cleaned_values );
   
    echo
PHP_EOL;
   
    echo
'Row id['.$row_key.']. Num Empty Cols: '.$row_math_ml_csv->num_empty_cols().'/'.$num_cols.'. Percentage Empty Cols: '.$row_math_ml_csv->perc_empty_cols().'%'.PHP_EOL;
   
    echo
PHP_EOL;
   
    foreach(
$row_values as $key_col_value => $col_value){
       
$value_parsed = $row_math_ml_csv->cols[ $key_col_value ]->value();
        echo
'Row id['.$row_key.'] Col['.$key_col_value.'] => ('.$value_parsed.'). Properties: ';
       
        foreach(
$row_math_ml_csv->cols[ $key_col_value ]->get_properties() as $key_name => $value_propertie ){
            echo
$key_name.' => '.$value_propertie.',';
        }
   
        echo
PHP_EOL;
       
        echo
'Row id['.$row_key.'] Col['.$key_col_value.'] => ('.$value_parsed.'). True Properties: ';
        foreach(
$row_math_ml_csv->cols[ $key_col_value ]->arr_true_properties() as $key_name => $value_propertie ){
            echo
$key_name.' => '.$value_propertie.',';
        }
        echo
PHP_EOL;
        echo
PHP_EOL;
    }
   
    echo
PHP_EOL;
   
   
   
// random col id
   
$random_col_id = rand(0, $num_cols-1);
   
$value_parsed = $row_math_ml_csv->cols[ $random_col_id ]->value();
   
    echo
'Properties of random col['.$random_col_id.']'.PHP_EOL;
    echo
PHP_EOL;
    echo
'Row id['.$row_key.'] Col['.$random_col_id.'] => ('.$value_parsed.'). Is string???: '.(($row_math_ml_csv->cols[ $random_col_id ]->is('string'))?'true':'false').PHP_EOL;
    echo
'Row id['.$row_key.'] Col['.$random_col_id.'] => ('.$value_parsed.'). Is str_with_commas???: '.(($row_math_ml_csv->cols[ $random_col_id ]->is('str_with_commas'))?'true':'false').PHP_EOL;
    echo
'Row id['.$row_key.'] Col['.$random_col_id.'] => ('.$value_parsed.'). Is numeric???: '.(($row_math_ml_csv->cols[ $random_col_id ]->is('numeric'))?'true':'false').PHP_EOL;
    echo
'Row id['.$row_key.'] Col['.$random_col_id.'] => ('.$value_parsed.'). Is empty???: '.(($row_math_ml_csv->cols[ $random_col_id ]->is('empty'))?'true':'false').PHP_EOL;
    echo
'Row id['.$row_key.'] Col['.$random_col_id.'] => ('.$value_parsed.'). Is empty_null???: '.(($row_math_ml_csv->cols[ $random_col_id ]->is('empty_null'))?'true':'false').PHP_EOL;
    echo
'Row id['.$row_key.'] Col['.$random_col_id.'] => ('.$value_parsed.'). Is empty_nan???: '.(($row_math_ml_csv->cols[ $random_col_id ]->is('empty_anyway'))?'true':'false').PHP_EOL;
    echo
'Row id['.$row_key.'] Col['.$random_col_id.'] => ('.$value_parsed.'). Is empty_anyway???: '.(($row_math_ml_csv->cols[ $random_col_id ]->is('empty_anyway'))?'true':'false').PHP_EOL;
    echo
'Row id['.$row_key.'] Col['.$random_col_id.'] => ('.$value_parsed.'). Is date???: '.(($row_math_ml_csv->cols[ $random_col_id ]->is('date'))?'true':'false').PHP_EOL;
    echo
'Row id['.$row_key.'] Col['.$random_col_id.'] => ('.$value_parsed.'). Is ip???: '.(($row_math_ml_csv->cols[ $random_col_id ]->is('ip'))?'true':'false').PHP_EOL;
    echo
'Row id['.$row_key.'] Col['.$random_col_id.'] => ('.$value_parsed.'). Is zero???: '.(($row_math_ml_csv->cols[ $random_col_id ]->is('zero'))?'true':'false').PHP_EOL;
    echo
'Row id['.$row_key.'] Col['.$random_col_id.'] => ('.$value_parsed.'). Is positive???: '.(($row_math_ml_csv->cols[ $random_col_id ]->is('positive'))?'true':'false').PHP_EOL;
    echo
'Row id['.$row_key.'] Col['.$random_col_id.'] => ('.$value_parsed.'). Is negative???: '.(($row_math_ml_csv->cols[ $random_col_id ]->is('negative'))?'true':'false').PHP_EOL;
    echo
'Row id['.$row_key.'] Col['.$random_col_id.'] => ('.$value_parsed.'). Is float???: '.(($row_math_ml_csv->cols[ $random_col_id ]->is('float'))?'true':'false').PHP_EOL;
    echo
'Row id['.$row_key.'] Col['.$random_col_id.'] => ('.$value_parsed.'). Is integer???: '.(($row_math_ml_csv->cols[ $random_col_id ]->is('integer'))?'true':'false').PHP_EOL;
   
    echo
PHP_EOL;
    echo
PHP_EOL;
    echo
PHP_EOL;
}

unset(
$row_math_ml_csv );


// Basic usage of the class, only for clean data and reuse it without do any calc
$config = []; // ['do_math_calcs', 'do_struct']. Empty do not calcs and not do structure actions, but is usefull for transform dirty data to cleaned data.
$row_key = 0; // in our example we want to see $arr_values[0]. $row_key mean id[0]

$row_math_ml_csv = new row_math_ml_csv( $arr_values[$row_key], $config ); // Get first row values

echo 'Use the class for get only cleaned values without do any calc:'.PHP_EOL;

$arr_cleaned_values = [];
foreach(
$row_math_ml_csv->cols as $col){
   
$arr_cleaned_values[] = $col->value();
}

echo
'Row id['.$row_key.']. Cleaned Values: ';
echo
implode( ',', $arr_cleaned_values );
echo
PHP_EOL;

unset(
$row_math_ml_csv );
?>